- 締切済み
特定ディレクトリの最新画像を表示する
特定ディレクトリにアップロードされた、一番新しいタイムスタンプのファイルを自動的に表示させるCGIを探しています。 使用目的は、携帯電話などから投稿した日記に画像が添付されていた場合、そこの最新画像を別ページで表示させる、というものです。 ご存知の方がいらっしゃいましたら、是非教えてください。よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ja330
- ベストアンサー率100% (2/2)
Perlで良かったでしょうか? 良いやり方かどうかは分かりませんが、サンプルを書いてみました。 #!/usr/local/bin/perl ←環境に合わせて下さい。 $folder = './images'; # 画像フォルダの場所 $gettime = 0; # 最終更新日時初期値 opendir(IN, $folder); while ($file = readdir(IN)) { if ($file eq "." or $file eq "..") { next } @fileinfo = stat("$folder/$file"); if ($gettime <= $fileinfo[9]) { # $fileinfo[9]が最終更新時刻 $gettime = $fileinfo[9]; $newfile = $file; # 最終更新時刻が新しければファイル名を記録 } } closedir(IN); #// HTML出力 print "Content-type: text/html\n\n"; print "<html><head>\n"; print "</head><body>\n"; ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($gettime); $date = sprintf("%04d年%02d月%02d日", $year + 1900, $mon +1, $mday); $time = sprintf("%02d時%02d分%02d秒", $hour, $min, $sec); print "最新ファイル「$newfile」の最終更新日時は<br>「$date $time」です。<br>\n"; print "<img src=\"$folder/$newfile\">\n"; print "</body></html>\n"; exit; 注)上記だと同時刻の場合は後に参照したファイルが最新となります。