プロが教えるわが家の防犯対策術!

について教えてください
<img src=?/>
の?の部分には画像が入るべきなのですが
?の部分がCGIだったときにこれはどういうことになるのでしょうか?

A 回答 (4件)

>画像ヘッダとはどういうものでしょうか?



Content-type: image/gif
Content-type: image/png
Content-type: image/jpeg

など、画像タイプごとに決まっています。
<img>タグに普通の画像ファイルが指定されている場合は
Webサーバが画像ファイルの拡張子から判断して返してくれ
ますが、CGIから返されるデータの種類は拡張子からは判断
できないのでCGI内部からヘッダを返す必要があります。


●CGIがPerlの場合で、GIF画像をCGIから返す例
#!/path/to/perl
print "Content-type: image/gif\n\n";
open(GIF, "file.gif");
binmode(GIF); binmode(STDOUT);
print <GIF>; close(GIF);

もちろん、CGIからは画像フォーマットを返せばいいので、
ファイルから読まずにあらかじめCGIソース内に画像データ
を持っておいて出力する方法も可能です。


ちなみに、多くのCGIではHTMLコンテンツを返す場合が多い
ので、ヘッダは以下のようになります。

print "Content-type: text/html\n\n";
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2005/01/09 11:45

>画像が入るべきなのですが



そこがCGIでも画像が入っているのと等価と考えていいです。

画像ファイルもCGIも、結局は画像ヘッダとその画像データ
を返すだけですから同じことです。

この回答への補足

ありがとうございます
画像ヘッダとはどういうものでしょうか?

補足日時:2005/01/09 01:59
    • good
    • 0

src に対して画像ファイルのパスが評価されれば良いので、ファイルパスを静的に設定するのが一般的な IMG タグの書き方。


そして画像を動的に変化させたい場合は画像ファイルのパスをそのときの状況に応じて変えてくれる CGI のパスを書きます。
呼び出された CGI が src= の後ろに画像パスの文字列をくっつけて Web ブラウザに返し、それをあなたのブラウザが受け取って画像を表示します。

この回答への補足

ありがとうございます
ということは

z.cgi:
#!usr/local/bin/perl
print "./z.gif";

(2行だけ)は有りでしょうか?

補足日時:2005/01/09 01:46
    • good
    • 0

アクセスカウンタなどでよく使われますが、単純にそのCGIが呼び出されると考えていいですよ。

この回答への補足

ありがとうございます
これを配置した部分にz.cgiのコードが展開されたのと同等になると考えていいのでしょうか?

補足日時:2005/01/09 01:42
    • good
    • 0

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