2014-11-03 41 views
0

得到了一個腳本,我用了幾次,使用move_uploaded_file。但我不明白爲什麼它不以任何方式迴應,沒有錯誤報告,什麼都沒有。Filehandling,move_uploaded_file給我沒有迴應

  • <form>使用method="post"target="upload"這是一個
  • action="file.php"響應$_FILES
  • 正確的加密類型
  • Filerights被設置爲777
  • 上傳文件夾 「上傳」 的存在

print_r($_FILES['file'])給我:

Array 
(
    [name] =&gt; 1392930853.png 
    [type] =&gt; image/png 
    [tmp_name] =&gt; /tmp/php0rZdBf 
    [error] =&gt; 0 
    [size] =&gt; 611 
) 

下面的代碼說明了我的劇本,我已經想通了是與move_uploaded_file最後一行是我的問題的原因,因爲它沒有任何反應。正如我上面寫的,沒有錯誤,沒有任何東西。

引擎收錄腳本:http://pastebin.com/49m9Siqi

得到一個線索,這可能是這個原因嗎?

$destination_path = getcwd().'/uploads/'; 
//echo $destination_path; 

// File handling 
$counted = count($_FILES['file']['name']); 
$counted = $counted-1; 

for ($i=0; $i<=$counted; $i++) { 
    if ($_FILES['file']['error'][$i] == UPLOAD_ERR_OK) { 
     $md5file = rand() . rand() . md5($_FILES['file']['name'][$i]) . rand() . rand();  
     if(move_uploaded_file($_FILES['file']['tmp_name'][$i], $destination_path . $md5file . "." . basename($_FILES['file']['type'][$i]))) { echo 'THIS WILL NOT BE ECHOED OUT ON THE PAGE'; }}} 
+0

的第一步將是你的代碼分解成多個語句,並檢查每個值一個接一個。正如目前所寫,嘗試和調試這將是一場噩夢。 – 2014-11-03 16:38:35

+0

在某些系統上,文件夾權限777不起作用,至少在我的一個系統上。嘗試755,這實際上更安全。所以,這可能是一個促成因素。你甚至可能想要把'$ destination_path = getcwd()。'/ uploads /';'改成'$ destination_path ='uploads /';'如果從服務器的根目錄運行你的腳本。您可能需要稍微玩一下,例如'$ destination_path ='../ uploads /';',具體取決於您所處的子文件夾的數量。 – 2014-11-03 16:42:14

+0

嘗試不使用iframe,查看是否獲得相同的結果結果。 – 2014-11-03 16:48:02

回答

0

有我的形式簡單的錯誤,因爲我處理我上傳的文件就像一個數組,我需要先創建陣列....哪個我忘了在我的形式做。

錯誤

<input type="file" name="file"> 

正確

<input type="file" name="file[]">