プロが教える店舗&オフィスのセキュリティ対策術

CGI初心者です。

CGI可のレンタルサーバーで、CGIで画像を表示させたいのですが、
ブラウザで見ると画像がでません。
画像の位置、パーミッションなどは何度も確認しました。
転送はバイナリです。

-------------
#!/usr/bin/perl

$view = 'r1.gif';
print "Content-type: image/gif\n\n";
open IMGG,"$view";
binmode (IMGG);
print <IMGG>;
close (IMGG);
------------------------

このCGIのhttp:~CGIを直接打つとブラウザに
「GIF89aX」とでて画像が出ません。
画像をhttp:~で直接指定するとちゃんと画像が出ます。 

なぜでしょう?
すぐに回答ほしいです。
どなたか詳しい方、よろしくお願いしま~す。

A 回答 (3件)

xreaはLinuxなのでbinmodeは関係ないですね。



拡張子を.xcgにしてみてはいかがでしょうか。

参考URL:http://www.xrea.com/?action=ad
    • good
    • 0
この回答へのお礼

taloo様
ご意見ありがとうございます。
無事表示されました。
ありがとうございました。

お礼日時:2007/01/30 21:56

広告つきのサーバならそのcgiと同じフォルダ内の.htaccessに、


LayoutIgnoreURI *.cgi
上の1行を記述してみれば。
    • good
    • 0

> print <IMGG>;


これを

while(<IMGG>){
print $_;
}

としてみてください。

サーバーはWindowsサーバーでしょうか?
もしそうならSTDOUTもbinmodeにする必要があります。

理由とか文法は文法書なり解説書、解説サイトを見て下さい。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。

while(<IMGG>){
print $_;
}

としても変わりません。

>サーバーはWindowsサーバーでしょうか?

スイマセン。意味がわかりませんが、レンタルサーバーは
XREAです。

>もしそうならSTDOUTもbinmodeにする必要があります。

これは
binmode (IMGG); のあとに
binmode(STDOUT);を入れるということでしょうか?

いれましたが、やはり同じです。
もう何日も悩んでいます。

何かご意見ありましたら引き続きよろしく
お願いしま~す。

お礼日時:2007/01/26 23:01

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