アクセスカウンタなどで、

<img src="aaa.cgi">

と、imgタグにcgiファイル名を指定しているのを見かけます。

おそらくこれでaaa.cgiが実行されると思いますが、
気になるのはこのタグでは実際には画像が表示されているのです。

アクセスカウンタでは「1」などの数字の画像です。

imgタグにcgiファイルを指定しておきながらgifイメージを表示するにはどのようにしたらいいのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

aaa.cgiの中で



print "Content-type: image/gif\n\n";
binmode STDOUT;
print "画像.gif";

のようにします。
    • good
    • 0

それは「aaa.cgi」が画像を出力しているのから画像が表示されるんです。



「CGI アクセスカウンタ」等で検索すればサンプルCGIが出てきますので
それを参考にしてみてください。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

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

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 という形で
呼び出すしかないのでしょうか?

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"; #ファイル...続きを読む

Aベストアンサー

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

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


人気Q&Aランキング

おすすめ情報