- - PR -
PHPで画像アップロードする方法を教えて下さい。
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-04-04 23:46
いつの間にか元記事が変わっていたのですね。気付きませんでした・・
アップロードした画像を保存したときに、その画像ファイル名を適当なテキストファイルに書き込んでおけばいいだけでは? (蛇足) そういうことなら件名:PHPで画像アップロードする方法を教えて下さい。というのはちょっとあんまりかも・・ [ メッセージ編集済み 編集者: shimix 編集日時 2007-04-04 23:49 ] | ||||||||
|
投稿日時: 2007-04-05 02:17
最初の投稿直されると気づかないってことのほうが多いので、
補足としてスレにレスするようにしたほうがよいかとおもいます。
要件わかりませんが。 ファイル名は不変でよく、アップされた画像を保存しておく必要がないなら、 常に同じファイル名で上書きしていくことで解決 保存しておく必要があるなら、ファイル名変わっていくので、 shimix氏の書かれているように、アップされた画像を保存するときに、 ファイル等にファイル名を保存しておく。 ファイル名とアップされた時間をDBに放り込んで、もっとも新しいアップされた時間のファイル名を取得する。 ファイル名がアップされたときの名前でなくて良いなら、エポックタイムとか日時とかファイル名に時間を埋め込んでそれでソートすれば一番新しいのがわかる。 条件次第でいかようにもできるとおもうのだけど。 | ||||||||
|
投稿日時: 2007-04-05 15:30
皆さんご回答ありがとうございます。
例えば画像保存用ディレクトリーに下記のように画像が保存された 場合で200704041527.jpgの画像を出力したければ、ファイル名を日付・時刻で付けて降順を取り入れれば最新の画像出力が出来るかと思いますがあっていますでしょうか? data |-200704041527.jpg |-200704032022.jpg [ メッセージ編集済み 編集者: kiyo 編集日時 2007-04-05 15:31 ] | ||||||||
|
投稿日時: 2007-04-05 16:11
もしそうならないとすれば、どういう原因があると思われますか?私はちょっと思いつきません。やってみればわかることですけど。 保存時には「秒単位」のようですのでファイル名の重複をどう避けるかという問題はありますが。 | ||||||||
|
投稿日時: 2007-04-05 19:53
皆さんありがとうございました。
参考になりました。 今は参考書とWEBを活用しちんぷんかんぷんではありますが 今回皆さんから頂いたアドバイスを基に考えてみます。 あと、質問する時の会議室も間違ってました。 皆様申し訳ありませんでした。 | ||||||||
|
投稿日時: 2007-04-06 00:15
shimixさん Kiyoです。 shimixさんのアドバイスでいろいろと調べてみてますがどうもできません。 今回はデータベースは使用してません・・・まだ初心者の為、今後スキルアップを考えております。 その為、現状はPHPのサンプルスクリプトを使用させて頂いていろいろと制作してみています。 今回の苦戦していたことでshimixさんの方法だと出来ると分りましたが下記の方法では可能でしょうか? まずファイル名を取得してname.txtにファイル名を保存をし画像出力を実行させようと考えております。 階層例 … sample.jpgをアップロードした場合です dir |-- sample.jpg 画像ファイル保存 |-- name.txt txt内は sample.jpg の一行で記録 画像出力時 <img src="<?php $file = fopen("name.txt","r+"); fpassthru($file); ?>"> 上記内容を踏まえて以下のスクリプトよりname.txtの生成の実行を考えておりますが どうも実行(.txt)の生成方法が分かりません。 自分が思うにはスクリプトの2行目からファイル名を取得してname.txtをあらかじめディレクトリー内へ保存しておいてname.txt内に画像ファイル名の保存の実行を行えば可能だと考えております。 そこで下記方法でname.txtへ画像ファイル名を保存していくにはどのようなスクリプトを使用すればname.txtへ書き込みが可能でしょうか? if (is_uploaded_file(@$_FILES["upfile"]["tmp_name"])) { $file_name = $save_dir.$_FILES["upfile"]["name"]; 長々となって申し訳ございませんが間違った方法かもしれませんが アドバイスをお願いいたします。 [ メッセージ編集済み 編集者: kiyo 編集日時 2007-04-06 00:25 ] [ メッセージ編集済み 編集者: kiyo 編集日時 2007-04-06 00:27 ] | ||||||||
|
投稿日時: 2007-04-06 01:21
やってみればわかりますが、多分大丈夫かと思います。あと・・ファイル操作は基本中の基本なので、普通の解説書には必ず出ていると思います。 (ex.) http://loglog.jp/~php/tt/ とか http://www.stackasterisk.jp/tech/php/php02_01.jsp とか・・ #私はオンラインマニュアルのサンプルを参考にすることが多いです。 なお「最後にアップロードされたファイル」を表示したいだけであれば(過去の画像が不要であれば)保存するファイル名は固定にして「アップロードされた元ファイル名」をテキストとして添えるのが無難じゃないでしょうか? [ メッセージ編集済み 編集者: shimix 編集日時 2007-04-06 01:33 ] | ||||||||
|
投稿日時: 2007-04-06 03:28
[quote]
shimixさんの書き込み (2007-04-06 01:21) より: [quote] kiyoさんの書き込み (2007-04-06 00:15) より: 画像出力時 <img src="<?php $file = fopen("name.txt","r+"); fpassthru($file); ?>"> [/quote] やってみればわかりますが、多分大丈夫かと思います。あと・・ファイル操作は基本中の基本なので、普通の解説書には必ず出ていると思います。 (ex.) [url=http://loglog.jp/~php/tt/]http://loglog.jp/~php/tt/[/url] とか [url=http://www.stackasterisk.jp/tech/php/php02_01.jsp]http://www.stackasterisk.jp/tech/php/php02_01.jsp[/url] とか・・ #私は[url=http://www.php.net/manual/ja/function.fopen.php]オンラインマニュアル[/url]のサンプルを参考にすることが多いです。 なお「最後にアップロードされたファイル」を表示したいだけであれば(過去の画像が不要であれば)保存するファイル名は固定にして「アップロードされた元ファイル名」をテキストとして添えるのが無難じゃないでしょうか? ご返信ありがとうございます。 保存するファイル名を固定してでも考えていましたが固定に関してもてこづってしまい テキストで読み込ませて表示する方法に至っておりました。 ファイル名を固定させる方法に関して何か参考となるサイトなど紹介して頂けたら幸いです。 本当に申し訳ありませんが宜しくお願い致します。 [ メッセージ編集済み 編集者: shimix 編集日時 2007-04-06 01:33 ] [/quote] |