2013-04-29 143 views
2

我試圖通過HTML表單上傳文件(msword/doc)到Apache服務器文件夾。它在我本地測試(我通過MAMP測試它)時起作用,但是當我將它上傳到遠程服務器(如GoDaddy)時,它不起作用。它顯示「文件上傳存在問題」。PHP文件上傳(在本地工作,但不在遠程服務器上)。

以下是處理文件上傳的代碼片段。我無法弄清楚我的條件有什麼問題。任何想法,將不勝感激!

 // Move the file to the target upload folder 
     $target = FILE_UPLOADPATH . basename($new_file); 
     if (move_uploaded_file($_FILES['new_file']['tmp_name'], $target)) 
     { 
     // The new file move was successful, now make sure any old file is deleted 
     if (!empty($old_file) && ($old_file != $new_file)) 
     { 
      @unlink(FILE_UPLOADPATH . $old_file); 
     } 
     } 
     else 
     { 
     // The new file move failed, so delete the temporary file and set the error flag 
     @unlink($_FILES['new_file']['tmp_name']); 
     echo 'There was a problem with the file upload.' . PHP_EOL; 
     } 
+0

您可以分享完整的$ _FILES數組,因爲錯誤參數中的值可能有助於闡明 – fullybaked 2013-04-29 16:05:56

+0

這裏是$ _FILES數組輸出:Array([new_file] => Array([name] => sample .doc [type] => msword/doc [tmp_name] =>/tmp/phpsTu20P [error] => 0 [size] => 119674))想法? – kthaker 2013-04-29 16:25:15

+0

錯誤參數中的值爲0. – kthaker 2013-04-29 16:28:25

回答

0

如果$_FILES['new_file']['error'] == 0然後上傳是沒有問題的,但調用move_uploaded_file()是。您可能對試圖將文件移動到的目錄擁有不正確的權限。

0

您確定要上傳的文件夾是否具有寫入文件的權限?如果不是,請使用chmod 0777並使用它進行測試。

+0

是的,它具有chmod 775權限。 – kthaker 2013-04-29 16:25:50

0

您的目標文件夾是否具有適當的權限? http://en.wikipedia.org/wiki/Chmod目錄寫入通常需要775:What are the proper permissions for an upload folder with PHP/Apache?

另外,你是否希望用戶能夠直接訪問該文件?如果不是,您應該考慮將文件寫入Web根目錄之上的文件夾。

+0

我再次檢查權限。他們是775.是的,我確實希望用戶能夠直接訪問該文件。我認爲這個問題可能在'move_uploaded_file'這一行。數據庫將文件名存儲在表中,並在上載後將其顯示在表單中。但是當我檢查上傳文件夾時,文件不存在。 – kthaker 2013-04-29 16:27:28

相關問題