- ベストアンサー
PHP重複ファイルに連番をつけてアップロードする方法
- PHPで作成したファイルアップロードページで、同じファイル名のデータを上書きせずに連番をつけてアップロードする方法について教えてください。
- ファイルをアップロードするページをPHPで作成し、同じファイル名のデータを上書きせずに連番をつけてアップロードしたいです。
- PHP初心者ですが、ファイルアップロードページで同じファイル名のデータを上書きするのではなく、連番をつけてアップロードする方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"]) この$_FILES["upfile"]["name"]の後ろに「.date("YMDHis")」を追加してやれば、別ファイルとして認識されると思います。初心者ということであれば、こちらの方がお手軽かと思います。 連番の場合は、ディレクトリ内に同じファイルがあったら、ファイル数を取得して、$_FILES["upfile"]["name"]の後ろに追加してあげればよいと思います。ファイル数の取得については既出です。 http://okwave.jp/qa1758366.html
その他の回答 (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);
お礼
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); は私には難解すぎます・・・ テキストファイル化し、勉強しておきます。 ほんといろいろと教えていただきありがとうございました。
>このdate情報を拡張子の前に付けることはできますか? これくらいは自分で調べてほしいのですが、初心者ということでサービスしましょう。 「date("YMDHis").$_FILES["upfile"]["name"]」としてみてください。 # 個人的には、$file_name=$_FILES["upfile"]["name"];とワンクッション置いて、スーパーグローバル変数でのやり取りはしないようにしています。
お礼
nanasi1976さん ありがとうございます!! 無事ファイル名の前に付加されました!! ほんとにいろいろありがとうございます。 もっと勉強して早く初心者からグレードアップしたいです! ほんとにありがとうございました。
お礼
nanasi1976さん ご回答ありがとうございます。 無事、上書きされずにすみました。 感謝です! 一つ疑問なのですが、このdate情報を 拡張子の前に付けることはできますか?