カレッヂ |
質問者 おさむ
投稿日 2005/3/13(日) 22:14:10
はじめまして。つい最近CGIに興味をもって勉強中の超初心者です。 テキストの表示とか時間の表示ができるようになって、やっと画像を表示するところに至って、 つまずきました。画像の表示で必要なことは、 1.サーバーの設定で(例えば、cgi-bin)ディレクトリ内でもバイナリファイルを扱えるように設定する。 2.MIMEタイプでgifやjpegを指定する。 などなど、いろんな条件があると思うのですが、今、単純に画像ファイルを取得できるプログラムを勉強しています。 以下のプログラムでは、画像が表示されないのですが、何が原因なのでしょうか? わかる方、おしえてください。 サーバー環境はApache for WIN 32を使っています。自分のPCに実験的な環境として設定しているだけで、 ちゃんとしたサーバーとしては使っていません。 #!/usr/local/bin/perl print "Content-type: image/jpeg\n\n"; #コンテンツタイプを指定する open IMGG, "img/aaa.jpg"; #ファイルハンドル IMGGに画像ファイルを読み込む binmode (IMGG); #画像なのでバイナリモードに設定する print <IMGG>; #ファイルハンドルを画面に書き出す close (IMGG); #ファイルハンドルを閉じる exit;
【習熟度】多少の改造ができる |
回答者 しあわせのツボ
[削除]
投稿日 2005/3/15(火) 20:17:58
バイナリを出力する場合は、入力元だけでなく出力先のファイルハンドルにもbinmodeの指定が必要です。 binmode(STDOUT); の1行を追加してみてください。 |
質問者 おさむ
[削除]
投稿日 2005/3/16(水) 04:24:01
#!/usr/local/bin/perl print "Content-type: image/jpeg\n\n"; #コンテンツタイプを指定する open IMGG, "./img/aaa.jpg"; #ファイルハンドル IMGGに画像ファイルを読み込む binmode (IMGG); #画像なのでバイナリモードに設定する binmode (STDOUT); print <IMGG>; #ファイルハンドルを画面に書き出す close (IMGG); #ファイルハンドルを閉じる exit; こんな感じでやってみました。 binmode (STDOUT);をそのまま追加したのですが、写真の部分が赤いばってん印のままです。 |
回答者 ヤス
[削除]
投稿日 2005/10/17(月) 17:23:28
こちらを参考にしてください http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_kj14.htm |
返信(回答)する
Web裏技 |