- PR -

PHPで画像アップロードする方法を教えて下さい。

投稿者投稿内容
kiyo
会議室デビュー日: 2006/12/15
投稿数: 8
投稿日時: 2007-04-04 17:39
皆さんお答えありがとうございます。

自分が質問した文章が分かりづらいところがありました・・・

今回はバナー用途で使用する画像の登録及び出力です。

現在は、画像に1.jpgとファイル名をつけてアップロードの時には1.jpgと名前をつけてアップロードします。そして表示には1.jpgで出力してます。

今後は、任意のファイル名でも画像をアップロードして
常に最新でアップされた画像ファイルを表示させるようにしたいところです。

皆様、宜しくお願いします。


-------------------------------------------------------------------------------
現在、PHPで画像ファイルの名前を決めてディレクトリーへ保存して最新画像の出力をやりたいところですがまだ初心者の為、分かりません。

ファイル自体をどんどんとディレクトリーへアップロードする方法はできます。

どなたか教えて下さい。

宜しくお願い致します。

[ メッセージ編集済み 編集者: kiyo 編集日時 2007-04-04 18:06 ]

[ メッセージ編集済み 編集者: kiyo 編集日時 2007-04-04 22:07 ]
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2007-04-04 17:48
copy($file, "$file_name");
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-04-04 17:52
私もPHP初心者ですが、もしやるとしたらまずここらへんを確認します。
kiyo
会議室デビュー日: 2006/12/15
投稿数: 8
投稿日時: 2007-04-04 17:54
あぶぽんさん早速お答えして頂きありがとうございます。

せっかくcopy($file, "$file_name");を送って下さいましたが
どのように入れたらいいか分かりません。

下記コードへ入れるとしたらどのように入れれば宜しいでしょうか?

------------------------------------------------------------------

$updir = './data/';
$uppath = $updir . basename($_FILES['myfile']['name']);

if($_FILES['myfile']['size'] === 0) {
echo "アップロードファイルが指定されていません。";
}
else{
$rtn = @move_uploaded_file($_FILES['myfile']['tmp_name'], $uppath);
if( $rtn === TRUE ) {
echo "アップロードが成功しました。";
}
else {
echo "アップロードに失敗しました。";
}
}
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-04-04 18:23
引用:
$uppath = $updir . basename($_FILES['myfile']['name']);



basename($_FILES['myfile']['name'])って怖くないですか?出来れば自分でファイル名を作った方がいいと思いますけど。

http://www.php.net/manual/ja/features.file-upload.php

それに「最新の画像出力」って日付時刻をファイル名にしておけば、降順に並べればいいだけですよね?

(追記)
これ↓を探してるとか?

http://www.php.net/manual/ja/function.date.php

[ メッセージ編集済み 編集者: shimix 編集日時 2007-04-04 18:26 ]
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2007-04-04 18:25
僕はPHPに関しては張りペタプログラマですから、こうしました。
kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2007-04-04 19:14
読んでいて、何がわからないのかはっきりしません。

そのためかみなさんは、POSTされたファイルを任意の場所に保存する方法を回答されていますが、
引用:

ファイル自体をどんどんとディレクトリーへアップロードする方法はできます。


ということですから、それはできているわけですよね。

引用:

PHPで画像ファイルの名前を決めてディレクトリーへ保存して最新画像の出力をやりたいところですがまだ初心者の為、分かりません。


とのことですが、いくつかの要素から成り立っていますよね。

画像ファイルの名前を決める
ディレクトリに保存する
最新画像の出力をする
の3つからなると思います。

2つ目は前述の通り、出来ていると書かれているのでなし。

1つ目は任意の名前の決め方の問題で、要件がわからないとなんとも言えないし。
(ユニークな名前の付け方がわからないとか)

3つ目は、今保存したファイルを返せばいいだけですし。

どの部分がわからないのでしょうか?
それとも本当は別の部分?
_________________
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-04-04 19:33
前の回答の続き(汗

ファイル名を日付・時刻で付けて降順・・と書きましたが、取得がわからないといけませんね。これ↓で配列に突っ込んでから並べ替えるのが普通ですかね。

http://www.php.net/manual/ja/function.readdir.php

#というかマニュアルを眺めていれば気付く範囲だろうなぁ・・

数が多くなるようだとDBに入れてしまう手もアリかもしれません。その場合はファイル名はtmpnameのままでもいいかもしれませんが、間違ってもクライアントのファイル名では保存しません(DBには実ファイルと別に「元ファイル名」として記録します)。


(追記)
Java Solution 会議室に投稿されたのは何か意図があったんでしょうか?Java Solutionの話には展開しそうにないですけど(苦笑

[ メッセージ編集済み 編集者: shimix 編集日時 2007-04-04 23:41 ]

スキルアップ/キャリアアップ(JOB@IT)