CGI から画像を表示する |
画像の表示方法と、何らかの条件によって表示させる画像を変えるなどをしてみます。
この方法を使うと、CGI の実行ディレクトリで画像の閲覧が許可されていない場合でも
CGI から読み込み、書き出すことで画像を表示する事ができます。
下のサンプルソースでは、同じディレクトリに aaa.jpg という画像を置いておき、CGI
を実行すると
その画像を表示するという事をしています。
実行すると、 aaa.jpg が読み込まれ、ブラウザに表示されます。
print "Content-type: image/jpeg\n\n"; の部分では、書き出すファイルがどのようなもの
なのかを指定しています。
今回は jpeg画像でしたので、 jpegのコンテンツタイプを指定していますが、GIF画像など他の
ものを表示する場合は、別のものにします。
ZIPなどのファイルをダウンロードさせたい時、上手く行かない場合は CGI に拡張子の引数を
渡すとサーバ側で上手く認識する場合もあります。
例: https://aimix.jp/beginnerscgi/test.cgi?zip
print "Content-type: image/gif\n\n";
print "Content-type: image/png\n\n";
print "Content-type: image/bmp\n\n";
【参考】 Yahoo! Japan 検索 「mime-type」
|
HTMLページから CGI を呼び出して画像を表示する |
先のCGI は実行すると画像を表示しますので、それをHTMLページ内で使ってみます。
<img src="CGIのURL"> とページ内に記述すると、その部分に画像が表示されます。
CGI 側で何らかの条件によって表示する画像を変えておけば、時間によって表示される
画像や背景が違うなどの処理もできます。
サンプルHTMLページ
画像表示CGI サンプルソース
|
時間によって表示する画像を変える |
time関数から取得できる時刻をlocaltime関数で整形し、時間によって表示する
画像を変化させています。
下のサンプルソースでは0時〜6時に aaa.jpg が表示され、7時〜12時に bbb.jpg
が表示され、
13時〜17時には ccc.jpg を表示、それ以外の場合は ddd.jpg を表示しています。
〜時から〜時という風に分けなくても、0時〜23時の全てに画像を指定して表示させても結構です。
上記の例では $hour に時間を示す値(0〜23)が入っていますので、それによって読み込んで表示
する画像を分岐しています。
|
|
|
関連項目
・ CGIの作成に関する用語
・ CGI作成に関するFAQ
|