#!/usr/local/bin/perl # 画像一括表示CGIスクリプト Ver.1.00(2001/02/12) # byすらむどらごん(isobe@cx.airnet.ne.jp) # http://www4.airnet.ne.jp/isobe/soft/imghtml2.pl # どっかのWEBサーバに置かれている、連番で名前がついてる # (gazou000.jpg〜gazou123.jpgみたいな感じに) # 画像ファイルを一括して表示するHTML文書を生成するCGIスクリプト。 # 「#!/usr/local/bin/perl」のところを、環境に合わせて書き換えてください。 &Parse; # 画像の置き場所のURL $basehref = $name{'basehref'}; # 画像の名前(数字の前まで) $prefix = $name{'prefix'}; # 画像の拡張子 $postfix = $name{'postfix'}; # 数字の最初の値 $start = $name{'start'}; # 一度に出力する画像数 $num = $name{'num'}; # 数字のフォーマット # ファイル名の連番の数字部分の頭に0がつかない場合は、1 # img01.jpgのように、頭に0がついて2桁になる場合は、2 # img001.jpgのように、頭に0がついて3桁になる場合は、3 #img0001.jpgのように、頭に0がついて4桁になる場合は、4 $fmt = $name{'fmt'}; # HTMLファイルのタイトルのフォーマット $title_fmt = sprintf("Download %s%%0%dd%s - %s%%0%dd%s\n", $prefix, $fmt, $postfix,$prefix, $fmt, $postfix); # 画像ファイルの名前のフォーマット $img_fmt = sprintf("
\n", $prefix, $fmt, $postfix); print "Content-Type: text/html\n\n"; print "\n"; printf($title_fmt, $start, ($start + $num - 1)); print "\n"; print "\n"; if ($num > 1000) { print "

んな大量にやっとられるかい、ぼけ!!

\n"; print "

一度に表示する画像数を減らしてください。

\n"; print "\n"; exit(1); } for ($i = 0; ($i < $num) ; $i++) { printf($img_fmt, ($start + $i)); } print "\n"; exit(1); # フォームからの入力を処理する関数(密かにパクってきた) sub Parse { local ($_, @_); if ($ENV{'REQUEST_METHOD'} eq "GET") { $_ = $ENV{'QUERY_STRING'}; } elsif ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $_, $ENV{'CONTENT_LENGTH'}); } split(/&/); foreach (@_) { if (index($_, "=") == $[ - 1) { push(name, '', $_); } else { push(name, split(/=/, $_, 2)); } } foreach (@name) { s/\+/ /g; s/%(..)/pack("c", hex($1))/ge; } %name = @name; } sub Value { local ($i, @value); &Parse unless defined @name; for ($i = $[; $i < $#name + 1; $i += 2) { push(value, $name[$i+1]) if $name[$i] eq $_[0]; } return @value; }