
画像、ファイルをアップロードできるフォームを作成しています。
----------------------
フォーム
<FORM NAME="objform" action="yes.php" METHOD="POST" ENCTYPE="multipart/form-data">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="1000000">
<INPUT TYPE="file" NAME="img1" SIZE="40"><BR>
<INPUT TYPE="submit" NAME="submit" VALUE="アップロードする!!">
</FORM>
ーーーーーーーーーーーーーーーーーーーー
yes.phpの中身
$updir = "./photo/";
$filename = $_FILES['upfile']['name']; //form の「upfile」の値
move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename);
--------------------------
これでphoto のフォルダに格納されるようにしているのですが、
もし、同じファイル名でアップされた場合上書きされてしまいます。
IDをつけるか、もしくはその他の方法でファイル名が重複されないような設定にするにはどうすればよいでしょうか。
現在PHP勉強中です。
初歩的なことかもしれませんが、
よくわからないのでアドバイスを頂けると助かります。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
とりあえず、一つの案として参考までにご覧ください。
ファイル名の前に、ユニークな数字をつけることで解決するとします。例えば1つ目のファイルなら「ID_1_○○○.jpg」というようにです。
そのためにまず外部ファイルを用意します。ここでは「id.dat」とします。ここに、いま何個目までファイルがアップロードされているかを記録していきます。
-------id.dat-------
0
初回はまだ0個なので上のように「0」とだけ書いて予め保存しておきます。その上で、スクリプトをいじります。
-------yes.php------
$updir = "./photo/";
$filename = $_FILES['upfile']['name'];
//追加分ここから
//ファイルを指定
$id_file = "id.dat";
//ファイルを開く
$fp = fopen($id_file,"r");
$id = fgets($fp);
fclose($fp);
//ファイルの数字に1を足します。
$id = $id + 1;
$fp = fopen($id_file,"w");
//保存します。
fputs($fp, $id);
fclose($fp);
//名前の前に番号を追記します。
$file_name = 'ID_'.$id.'_'.$file_name;
//追加分ここまで
move_uploaded_file($_FILES['upfile']['tmp_name'],
$updir.$filename);
こんな感じで、ファイル名にユニークな番号を振って、move_uploaded_fileすればいけるのではないかと。何かのヒントになれば幸いです。
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
unlinkでどうしてもファイルが...
-
movabletypeでPDFファイルをア...
-
「クラウドにアップロード」」...
-
$filePath = './user_img/' . $...
-
ファイルのアップロードでパス...
-
拡張子PHP3のスクリプトを...
-
phpのheader("Location:#pos")...
-
*.php、*.php3、*.phtmlの違い
-
CFileDialogの最初のディレクト...
-
シェルスクリプトをPHPで動かそ...
-
php4とphp5での数値の取り扱い...
-
require_once()でファイルが読...
-
PHPのif文でその処理を途中で抜...
-
「クラス関数」「メンバ関数」...
-
ZendFrameworlkでZend_Session...
-
HPを開くとダウンロードページ...
-
ImageCreate関数が undefined f...
-
Warning: Invalid argument sup...
-
phpのextension_dirを複数指定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
「クラウドにアップロード」」...
-
BASP21のFTPで日本語ファイル名...
-
ftpでアップロードが出来ない
-
FTPClientで転送結果(OKかFAIL)
-
youtubeに音声のみのmp4ファイ...
-
PHPでxmlをAPIに送信する方法(P...
-
os x serverのアップロードファ...
-
ファイルのアップロードがどう...
-
$_FILES['x']['error']について
-
DUMPした巨大SQLファイルをイン...
-
違法アップロードについて
-
ファイルアップロードの日付に...
-
ファイルアップロードしたもの...
-
PHPで音楽ファイルのアップ...
-
アップロードするとバックスラ...
-
BASP21を利用してリネームファ...
-
ファイルサイズがpost_max_size...
-
ファイルのアップロードを行う...
-
SmartyでHTMLソースの変更が反...
おすすめ情報