アプリ版:「スタンプのみでお礼する」機能のリリースについて

cgiで表示するhtmlページ内でバイナリ画像を出力したい

「CGI 画像出力」でググったページで下記のコードがありました。
下記コードは、
Content-typeをimage/gif等にして バイナリを print すれば表示される
という書き方になっていると思いますが、
content-typeがtext/html のページ内でバイナリをprintした場合
バイナリが文字列としてグシャァァァと表示されてしまいます。


-------
$view = 'aaa.jpg';

print "Content-type: image/jpeg\n\n"; #コンテンツタイプを指定する
open IMGG,"$view"; #ファイルハンドル IMGGに画像ファイルを読み込む
binmode (IMGG); #画像なのでバイナリモードに設定する
print <IMGG>; #ファイルハンドルを画面に書き出す
close (IMGG); #ファイルハンドルを閉じる

exit;
-------

content-typeがtext/htmlの状態でバイナリの画像を表示するには
どうすればよいのでしょうか?

cgiを2つ用意して、上記のコードを img src=~~.cgi という形で
呼び出すしかないのでしょうか?

A 回答 (1件)

基本的には、1リクエスト1ファイル返却となりますので、HTMLとJPEGは別々のファイルで返して下さい。



ヘッダー以降に返却されるデータはボディーであり、HTMLの途中からJPEGに変更するってのは反則で通りません。
HTMLの中で単純にバイナリを展開したら無茶苦茶な状態になります。
どうしてもと言うならバイナリをJSコードにして埋めてDOMで再生成とか無茶なやり方は思いつきますが…勧めません。
    • good
    • 0
この回答へのお礼

やはり別々のファイルにするしかなさそうですね。
ありがとうございました!(^^

お礼日時:2010/11/02 12:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!