
画像、ファイルをアップロードできるフォームを作成しています。
----------------------
フォーム
<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で質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
BASP21を利用してリネームファ...
-
サーバーにアップロードしたい
-
ftpでアップロードが出来ない
-
違法アップロードについて
-
is_uploaded_fileについて
-
FTP接続の例外処理
-
ファイルのアップロードが、ど...
-
ファイルのアップロードで文字...
-
ファイルのアップロードで、フ...
-
ファイルアップロードの上限を...
-
FTPClientで転送結果(OKかFAIL)
-
PHPMailerで大きなファイルが送...
-
10MB以内のJPG画像
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
バッチを用いたフォルダの自動移動
-
iphoneで虫眼鏡の作り方
-
Subversionのリポジトリの削除
-
PHPSpreadsheetによる書き出し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
「クラウドにアップロード」」...
-
youtubeに音声のみのmp4ファイ...
-
ファイルのアップロードで、フ...
-
ファイルサイズがpost_max_size...
-
ftpでアップロードが出来ない
-
違法アップロードについて
-
DUMPした巨大SQLファイルをイン...
-
VBでクラウドストレージにア...
-
SmartyでHTMLソースの変更が反...
-
複数ファイルのアップロードに...
-
FTPClientで転送結果(OKかFAIL)
-
ファイルアップロードしたもの...
-
大容量のファイルアップロード...
-
unlinkでどうしてもファイルが...
-
one drive のアップロード失敗...
-
ファイルアップロードの上限を...
-
ファイルアップロードの日付に...
-
画像ファイルの名前をそのままU...
-
ファイルをGET送信でアップロー...
おすすめ情報