解決済み

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

  • すぐに回答を!
  • 質問No.973746
  • 閲覧数37
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

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

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

  • 回答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
#ここまで
投稿日時 - 2004-08-24 18:14:14
OKWAVE 20th Be MORE ありがとうをカタチに

その他の回答 (全3件)

  • 回答No.3

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

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

こんにちは!

ランダムに表示するのでないのでしたら、新しい画像を同じファイル名にしてアップロードしてあげるだけで上書きされますので新しい画像に入れ替わります。

意味を間違えていたらすいません・・。

上書きするとサーバー側の古い画像はなくなりますので、PC側でのバックアップが必要です。
お礼コメント
noname#14099

ありがとうございます
表示させるためにはそれでいいと思います
でも、過去ログみたいなものもつけたいのです
回答をいただいて申し訳ないのですが、前者のものでやってみようと思います
投稿日時 - 2004-08-24 14:27:40
  • 回答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ファイルにして
パーミッションとアクセス権を設定してやればいいのですか?
投稿日時 - 2004-08-24 14:24:32
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ