2013-01-10 63 views
0

我已經從下面的腳本中刪除了所有不相關的代碼,試圖縮小這個問題的範圍,但即使我現在只是「裸心」,它仍然無法工作。爲什麼我的文件上傳表單沒有工作?

Web服務器錯誤日誌中沒有關於此的錯誤,並且print_r($ _ Files)爲空。有什麼可能阻止這從工作請?

我試圖上傳的文件是20Kb。 php服務器變量upload_max_filesize = 100M和post_max_size = 101M。

<? 
echo 'Here is some debugging info:'; 
print_r($_FILES); 

if ($_FILES['image']['name']) { 

    echo "\n\nFiles Detected"; 

} else { 
?> 
<!DOCTYPE HTML> 
<html> 
    <head> 
     <title>File Upload</title> 
    </head> 
    <body> 
     <form 
      action = "<?=$_SERVER['PHP_SELF']?>" 
      enctype = "multipart/form-data" 
      name = "uploadImage"> 

      Upload: 
      <input type='file' name='image'><br><br> 
      <input type="submit" value="Upload"> 
     </form> 
    </body> 
</html> 
<? } ?> 

未檢測到文件。

+0

在你的工作場所有防火牆嗎? – Cups

+1

你添加了:method =「POST」到你的表單嗎? –

+1

啊,是的,丟失後的方法,也許吧,http://php.net/manual/en/features.file-upload.post-method.php我陷入了「工作中沒有工作」的評論... – Cups

回答

7

上傳文件需要使用「發佈」。由於您沒有爲表單標籤指定「method」屬性,所以默認方法是「get」。嘗試爲表單設置method="post"

+0

幹得好!這解決了它。謝謝。再接受6分鐘的答案! –

+0

但是,他必須使用$ _FILES。不明白爲什麼在表單 –

+3

需要屬性方法。因爲上傳文件時需要將數據編碼爲正確格式以支持發送文件數據。這就是'enctype =「multipart/form-data」'的用途。 GET方法不支持編碼的替代方法。 – Valdars

4

您從表單屬性中缺少method =「post」。

+0

但是,他必須使用$ _FILES。不明白 –

+1

默認方法是get,文件上傳只能用post方法。 – Dutow

相關問題