画像のアップロードを楽にできる方法を探しております。
画像が何枚が配置してあり、新しい画像を一番左上に配置して場合、
その次の画像が順にずれていくような事がしたいのですが難しいのでしょうか?
サイト内のindex直下のimageフォルダ内に画像をアップロードすると自動的に更新するシステムを構築したいです。
簡単ではないと思いますが、準備するプログラムやソーズ等が知りたいです。
ホームページ制作はできるのですがPHPやPerl等は初級中級レベルなもので…
伝わりずらい質問ですいませんがよろしくお願い致します。
▼参考サイト
http://www.brandnu.co.uk/home.php
初級中級レベルであれば習作にはちょうどいい題材だと思いますよ。
・ディレクトリを読む。
・ディレクトリ内の画像ファイルとその更新日時を配列にストックする。
・更新日時で並び替え。
・適当なHTML要素として吐き出し。
ってところでしょうか。
レイアウトに関しては単純にリストにでもしておけばブラウザの幅か親要素に幅を指定しておけばその範囲で折り返してくれるでしょう。
ただし、例に挙げているサイトのようにサムネイルの大きさを統一したいとなると少し複雑。
表示のたびに全てのサムネイルを毎回動的に作るのも非効率なので別のディレクトリなどにキャッシュとして貯めておくとか工夫が要ります。
また、一度に大量のファイルを追加する可能性があるなら、サムネイル作成用のスクリプトを別に用意して実行するような運用が要るかもしれません。
少し毛色が違いますが、単発で最新(または指定した鮮度)の画像を表示するというCGIがありましたのでもしかしたら参考になるかも。
cronデーモンとRubyスクリプトを使って同じようなことをしていた時期があります。
# 個人で使っていただけなので、その後flickrが便利になったときに移行しましたが。
すいません…
まだtakano32さんのレベルに達していないのでよくわかりません…
プログラムとしては、アップロード用と表示用の2種類を用意します。
▼アップロード用
まず、アップロード用はウェブページのフォーム(<input type='file' name='***' />)から送信されたファイルを保存します。
ここで、保存する際にファイル名を現在の「年月日時分秒+nn」にしておきます。
(nnは00~99までの連番で同じ時間にアップロードがあった場合の対策です)
下記を参照
http://www.standpower.com/php_up.html
▼表示用
次に、表示用はimageフォルダ内からファイルの一覧を取得します。
glob関数を使うと簡単です。(http://phpspot.net/php/man/php/function.glob.html)
取得したファイルのリストを降順にソートします。(新しいファイルから表示するため)
最後にそのファイルのリストをHTMLに変換します。
以下、簡単なソース
$flist = glob("image/*.jpg"); rsort($flist); foreach ($flist as $fname) { echo "<img src='".$fname."' />"; }
※PHPは不慣れなため上記のソースは間違っているかもしれません。
あとは、HTMLやCSSで制御できると思います。
ごめんなさーい。少しわかりずらかったです。
URLもNot foundです…。