• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP重複ファイルに連番をつけてアップロードしたい)

PHP重複ファイルに連番をつけてアップロードする方法

このQ&Aのポイント
  • PHPで作成したファイルアップロードページで、同じファイル名のデータを上書きせずに連番をつけてアップロードする方法について教えてください。
  • ファイルをアップロードするページをPHPで作成し、同じファイル名のデータを上書きせずに連番をつけてアップロードしたいです。
  • PHP初心者ですが、ファイルアップロードページで同じファイル名のデータを上書きするのではなく、連番をつけてアップロードする方法を教えてください。

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

  • ベストアンサー
noname#87667
noname#87667
回答No.1

move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"]) この$_FILES["upfile"]["name"]の後ろに「.date("YMDHis")」を追加してやれば、別ファイルとして認識されると思います。初心者ということであれば、こちらの方がお手軽かと思います。 連番の場合は、ディレクトリ内に同じファイルがあったら、ファイル数を取得して、$_FILES["upfile"]["name"]の後ろに追加してあげればよいと思います。ファイル数の取得については既出です。 http://okwave.jp/qa1758366.html

yy2009617
質問者

お礼

nanasi1976さん ご回答ありがとうございます。 無事、上書きされずにすみました。 感謝です! 一つ疑問なのですが、このdate情報を 拡張子の前に付けることはできますか?

その他の回答 (3)

noname#87667
noname#87667
回答No.4

>私には難解すぎます 一部を除き、提示したサンプルはファイル操作の基本中の基本ですので、必ずマスターしてください。 それと、質問が解決したら、締め切ったほうがいいですよ。

noname#87667
noname#87667
回答No.3

>連番の場合は、ディレクトリ内に同じファイルがあったら、ファイル数を取得して、$_FILES["upfile"]["name"]の後ろに追加してあげればよいと思います。 すみません。上記は無視してください。 アップロードされるファイルが常に同じ名前であれば、上書きされるときにcount.txtというファイルに上書き回数を記録するという手もありますが、現実的ではないと思うので、この方法も却下で・・・ c.f. 実現例(参考までに・・・) $fp=fopen("count.txt","w+"); $current_count = fgets($fp); if($current_count==""){ $current_count=0; } $count = $current_count+1; fwrite($fp,$count); fclose($fp);

yy2009617
質問者

お礼

nanasi1976さん 上記にあります、 c.f. 実現例(参考までに・・・) $fp=fopen("count.txt","w+"); $current_count = fgets($fp); if($current_count==""){ $current_count=0; } $count = $current_count+1; fwrite($fp,$count); fclose($fp); は私には難解すぎます・・・ テキストファイル化し、勉強しておきます。 ほんといろいろと教えていただきありがとうございました。

noname#87667
noname#87667
回答No.2

>このdate情報を拡張子の前に付けることはできますか? これくらいは自分で調べてほしいのですが、初心者ということでサービスしましょう。 「date("YMDHis").$_FILES["upfile"]["name"]」としてみてください。 # 個人的には、$file_name=$_FILES["upfile"]["name"];とワンクッション置いて、スーパーグローバル変数でのやり取りはしないようにしています。

yy2009617
質問者

お礼

nanasi1976さん ありがとうございます!! 無事ファイル名の前に付加されました!! ほんとにいろいろありがとうございます。 もっと勉強して早く初心者からグレードアップしたいです! ほんとにありがとうございました。

関連するQ&A