8.ランダムに画像を表示させよう3

前回6でのランダムに画像を表示させるCGIを作りましたけど
今度は直接画像を表示させる形式にします。
これによってより簡単にHTMLに埋め込むことが出来るようになります。
SSIを使う必要もありません。

今回の場合セキュリティにとっては危ないことをしますので
サーバーによっては使用を拒否されたり突然削除されることもありえます。
また、cgiを置くサーバーと画像を置くサーバーは同一でないと動作しません。

その1 その2と別の方法で表示させるものもあります。
あわせて読んでみるといいかもしれません。

gazou4.cgi
#!/usr/local/bin/perl

$gdir ="./img/"; #画像ディレクトリのこのcgiからの相対パス

opendir(DIR,$gdir);

foreach(grep(/\.(jpg|gif|png)$/,readdir(DIR)))
{
push(@pics,$_);
}

$picn=@pics;
srand;
$picnn=int rand($picn);
if ($gdir =~ /\/$/){ $gdir =~ s/\/$//g; }
$file = "$gdir/$pics[$picnn]";

if ($file =~ /\.jpg$/i){ print "Content-Type: image/jpg\n\n"; }
elsif ($file =~ /\.gif$/i){ print "Content-Type: image/gif\n\n"; }
elsif ($file =~ /\.png$/i){ print "Content-Type: image/png\n\n"; }
else { print "Content-Type: text/plain\n\n"; }

open(PIC,"$file");
while (<PIC>){ print $_; }
close(PIC);

exit;

動作例はこのようになります。
このページを何回かリロードすれば変わると思います。
Netscape4系ではキャッシュが効くみたいで変わりません(^^;;;
そのときは動作例をクリックして直接呼び出してリロードしてみましょう。

まあいろいろ試してみましょう。

もどる