AN HTTPD ゲストブック/コメント集(2001年2月27日13:57)


よしお yositarou@geocities.co.jp 2001/02/28 20:23

中田さんありがとうございました。

言われた通り、binmode(STDOUT); を付けたしたら表示出来ました。

本当にありがとうございました。


中田昭雄 nakata@st.rim.or.jp 2001/02/27 21:36

よしおさん、
出力をファイルにリダイレクトして、もとのファイルとバイナリ比較をしてみるとよくわかるはずです。

つまり、print は print STDOUT ということなので、

binmode(IMG);
binmode(STDOUT);
print $_ while (<IMG>);

と、binmode(STDOUT)を入れればいいのだと思います。

binmode(STDOUT)がなくても、バイナリファイルによってはテキスト変換される文字(バイト)を含んでいないので、そのようなバイナリファイルは正常に表示されます。


よしお yositarou@geocities.co.jp 2001/02/27 13:57

こんにちは、初めて投稿します。

早速質問なのですが、CGIでpng形式の画像を表示させる事が出来ません。
オプション/一般でファイルタイプも指定してあるのですが、上手く行きません。
同じやり方でGIF形式の画像を表示させる事は出来るのですが、なぜでしょう。
作成したCGIスクリプトが悪いのでしょうか
どなたか、不出来な私に伝授して頂けないでしょうか。お願いします。

環境は WinNT4.0 IE5.5 で AN HTTP 1.32f を使用です。

【CGIスクリプトの記述部分】
-------------------------------------------------
print "Content-type: image/png\n\n";
open(IMG, "$dir/$img") || die "Can't open: $dir/$img";
binmode(IMG);
print $_ while (<IMG>);
close(IMG);
--------------------------------------------------