1

私のサイトには2つのフォームがあります。1つは単一のファイルをアップロードするフォームで、もう1つは複数のファイルをアップロードするフォームです。両方のフォームが同じディレクトリにアップロードされ、単一のファイルフォームは問題なく機能します。複数ファイルのアップロードフォームのコードを最適化して、各ファイルの処理を個別に書き出さないようにするために、次のコードがあります。

foreach($_FILES['multi']['name'] as $uploaded_file){
     if(!move_uploaded_file($uploaded_file, "/var/www/uploads/".$uploaded_file."")){
         echo "Could not move File: ".$uploaded_file."<br />";
     }else{
         // Do additional processing
     }  
}

ファイルをディレクトリに移動する代わりに、これは有効であり、単一ファイルのアップロードフォームで機能しますが、スクリプトはエラーになり、停止メッセージを表示します。

"Could not move File: <filename here>"

洞察と助けのおかげで、私の頭をかきむしりました。

4

2 に答える 2

1

アップロードの一時ファイルの場所を適切にターゲットにしていない:

foreach ($_FILES['multi']['name'] as $idx => $uploaded_file) {
    move_uploaded_file($_FILES['multi']['tmp_name'][$idx], "/var/www/uploads/$uploaded_file");
}
于 2012-11-29T03:30:16.943 に答える
0

次のようなものを試してください:

$count=0; 
foreach($_FILES['multi']['name'] as $uploaded_file) {
   $tmp=$_FILES['file']['tmp_name'][$count];
   if(!move_uploaded_file($tmp, "/var/www/uploads/".$uploaded_file)){
     echo "Could not move File: ".$uploaded_file."<br />";
   }else{
     // Do additional processing
   }   
   $count=$count + 1;
}
于 2012-11-29T03:24:13.647 に答える