• ベストアンサー

画像のあるフォルダから画像選択

私は、今、ホームページの頭に「今週の1枚」と称して画像を貼りたいのですが、 KENT-WEBさんのClipBoardが「レス番号.拡張子」というかんじで 書き込んだ番号が1ばんだと 1.jpg 20だと 20.jpg というふうに書き込まれるのですが、 その画像をアップロードするフォルダの中で一番新しいかず(1.jpg 10.jpg 32.jpgとあれば32.jpgを)だしたいのですが、 このように表示させるスクリプトまたはCGIはないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#25358
noname#25358
回答No.4

 えとですね。  下記のプログラムを、拡張子 .cgi で保存して、他のCGIプログラムと同じように設置すればOKのはずです(パーミッションは755)。 ---------------○ #!/usr/local/bin/perl $imagedir = './image'; # イメージのあるフォルダ opendir(DIR,$imagedir); @files=readdir(DIR); closedir(DIR); foreach(@files) { if ( /^(\d+)\.jpg$/ ) { if ( $max < $1 ) { $max = $1; } } } print <<EOM; Content-type: text/html <html> <body> これが最新の画像!!<br> <img src="$max.jpg"> EOM --------------------○

noname#14099
質問者

お礼

ありがとうございます ですが、なぜかそれでは出来なかったので(パーミッション、アクセス権設定したが) その文法をみて(これでもHSPとDelphiと少し扱うことが出来ます)自分なりに以下のものに変えたら無事表示されました! #ここから #!/usr/bin/perl $imagedir = '../../html/cgidata/knop/img'; # イメージのあるフォルダ $opdir = '../../cgidata/knop/img'; opendir(DIR,$imagedir); @files=readdir(DIR); closedir(DIR); foreach(@files) { if ( /^(\d+)\.jpg$/ ) { if ( $max < $1 ) { $max = $1; } } } print <<EOM; Content-type: text/html <html> <body> これが最新の画像!!<br> <img src="$opdir/$max.jpg"> EOM #ここまで

その他の回答 (3)

noname#25358
noname#25358
回答No.3

 そうっすね。  要するに最新の投稿画像を見たいってことなんでしょうか?  でしたら、#1の関数に Content-type: text/html を出力する処理とか何とか、テキトーに追加すれば動くと思います。

noname#14099
質問者

補足

そうです。 最新の画像を見たいのです トップページにカウンターみたいに最新の画像を1行の記述で出るようにできたらなおいいです。 それとCGIは組んだことが無いのでどこにその関数をつければよいのですか? あと、これは画像のあるディレクトリにおくのですか? それなら私のサーバーはなぜかCGIのディレクトリに画像を置けないのでほかのディレクトリにある画像を呼び出せるようにするにはどう変更すればよいでしょうか?

noname#107580
noname#107580
回答No.2

こんにちは! ランダムに表示するのでないのでしたら、新しい画像を同じファイル名にしてアップロードしてあげるだけで上書きされますので新しい画像に入れ替わります。 意味を間違えていたらすいません・・。 上書きするとサーバー側の古い画像はなくなりますので、PC側でのバックアップが必要です。

noname#14099
質問者

お礼

ありがとうございます 表示させるためにはそれでいいと思います でも、過去ログみたいなものもつけたいのです 回答をいただいて申し訳ないのですが、前者のものでやってみようと思います

noname#25358
noname#25358
回答No.1

 たぶんこれをCGIに組み込めばイケるかと。  (全角スペースをタブに置き換えてください)  セキュリティの関係で JavaScript ではできません。 sub getMaximamFile {  my ( $max ) = 0;  opendir(DIR,$_[0]);  @files=readdir(DIR);  closedir(DIR);  foreach(@files) {   if ( /^(\d+)\.jpg$/ ) {    if ( $max < $1 ) { $max = $1; }   }  }  return "$max.jpg"; }

noname#14099
質問者

補足

ありがとうございます と、言うことは それをcgiファイルにして パーミッションとアクセス権を設定してやればいいのですか?

専門家に質問してみよう