1

「name=fileImage」というファイル入力があります。これで、フォルダー (ImageFiles) にファイルが存在するかどうかを確認する以下の php コードがあります。

if (file_exists("ImageFiles/" . $_FILES["fileImage"]["name"]))
  {

  }

私の質問は、ファイルがフォルダーに存在する場合、ファイルをアップロードしても別のファイル名を付けるようにコーディングするにはどうすればよいかということです。ファイル名の最後に自動的に番号を追加して、別のファイル名にするようなものでしょうか?

4

2 に答える 2

6

$_FILESは単なる変数であり、たまたまスーパーグローバルであり、ファイルアップロードデータが事前に入力されています。つまり、簡単に変更できます。

例えば:

if( file_exists("ImageFiles/".$_FILES['fileImage']['name'])) {
    $parts = explode(".",$_FILES['fileImage']['name']);
    $ext = array_pop($parts);
    $base = implode(".",$parts);
    $n = 2;
    while( file_exists("ImageFiles/".$base."_".$n.".".$ext)) $n++;
    $_FILES['fileImage']['name'] = $base."_".$n.".".$ext;
}
// now use $_FILES['fileImage']['name'] just like you would normally
于 2012-04-14T13:47:33.570 に答える
0

アップロードしたファイルの名前を自分で選んだ名前に変更したい場合は、試すことができます

<?php

    //Any file name user/uploader has chosen/used on his/her computer
    $tmp_name = $_FILES["domainfile"]["tmp_name"];

    //Name you want
    $name = "MyDesiredName.png"; //save as MyDesiredName.png

    //Move/save file
    move_uploaded_file($tmp_name, $name);

?>

明らかに、このコードは、新しいファイルがアップロードされるたびに古いファイルを置き換えます。
これが起こらないようにするには、$name に何らかの変数を導入し
て $name++ を実行し、将来の参照のためにその値を保存する方法を見つける必要があります。

于 2012-04-14T14:35:24.920 に答える