0

1 つのページに複数の画像アップロード フォーム (最大 3 つ) がありますが、ユーザーが 1 つ以上の画像をまったくアップロードしないことを選択する場合があります。1 つ以上が空白のままになっている場合にアップロードを処理するスクリプトで、次のエラーが発生します。

「警告: copy() [function.copy]: ファイル名を空にすることはできません」....

以下のコードを使用して、フィールドが空の場合はコピー要求を無視しようとしましたが、ファイルのアップロードが存在するが機能しない場合はコピーを実行します。なぜこれが機能しないのか、より適切に別の方法でコーディングする必要があるのか​​ 教えてもらえますか?

<form id="form1" method="post" action="processor.php" enctype="multipart/form-data">

<div>
First Profile Image  <input name="ufile[]" type="file" /><br />
Second Profile Image <input name="ufile[]" type="file" /><br />
Third Profile Image  <input name="ufile[]" type="file" /><br />
<input type="submit" name="submit" id="submit" value="Submit" />

</div>

processor.php ファイル内の PHP

$pfi1= "upload/".$_FILES['ufile']['name'][0];
$pfi2= "upload/".$_FILES['ufile']['name'][1];
$pfi3= "upload/".$_FILES['ufile']['name'][2];
if ($_FILES['ufile']['name'][0] !=="" || $_FILES['ufile']['name'][0] !==NULL) {copy($_FILES['ufile']['tmp_name'][0], $pfi1);}
if ($_FILES['ufile']['name'][1] !=="" || $_FILES['ufile']['name'][1] !==NULL) {copy($_FILES['ufile']['tmp_name'][1], $pfi2);}
if ($_FILES['ufile']['name'][2] !=="" || $_FILES['ufile']['name'][2] !==NULL) {copy($_FILES['ufile']['tmp_name'][2], $fi3);}
4

2 に答える 2

0

このリンクのコメントで使用されているように: Multiple file upload in php Thanks to: Andy Braham for his input on that thread.

HTML

<input name="upload[]" type="file" multiple="multiple" />

PHP

//Loop through each file
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
  //Get the temp file path
  $tmpFilePath = $_FILES['upload']['tmp_name'][$i];

  //Make sure we have a filepath
  if ($tmpFilePath != ""){
    //Setup our new file path
    $newFilePath = "./uploadFiles/" . $_FILES['upload']['name'][$i];

    //Upload the file into the temp dir
    if(move_uploaded_file($tmpFilePath, $newFilePath)) {

      //Handle other code here

    }
  }
}
于 2013-05-01T02:57:13.410 に答える