2012-11-29 27 views
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>" 

被抓我的頭最漂亮的,感謝任何見解和幫助!

+0

權限是寫,因爲單個文件上傳表單寫入到同一目錄和沒有問題。 – rws907

回答

1

你不針對上傳的臨時文件位置正確:

foreach ($_FILES['multi']['name'] as $idx => $uploaded_file) { 
    move_uploaded_file($_FILES['multi']['tmp_name'][$idx], "/var/www/uploads/$uploaded_file"); 
} 
+0

就是這樣,謝謝! – rws907

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; 
} 
+0

同樣的結果,它只是輸出表單中每個文件的「無法移動文件」。 – rws907