PHP 上傳文件報錯處理

$_FILES['userfile']['name'] 客戶端機器文件的原名稱。
$_FILES['userfile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如“image/gif”。
$_FILES['userfile']['size'] 已上傳文件的大小,單位爲字節。
$_FILES['userfile']['tmp_name'] 文件被上傳後在服務端儲存的臨時文件名。
$_FILES['userfile']['error'] 和該文件上傳相關的錯誤代碼 

如果名爲file1.doc和file2.doc文件被上傳,則FILES[userfile][name][0]file1.doc _FILES[‘userfile’][‘name’] [1]則將包含文件file.doc的名稱。

值:0; 沒有錯誤發生,文件上傳成功。
值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。
值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。
值:3; 文件只有部分被上傳。
值:4; 沒有文件被上傳。 

     我上傳的一首MP3,大概4M多,我看錯誤代碼是2,開來是我的HTML 表單中 MAX_FILE_SIZE 選項指定的值太小了,我看了一下,數值是30000,我又查了一下,這個設置的單位是字節,看來的確是這個問題了,把值設置大點不就OK了嗎,我一下改爲了10M,看來是沒問題了。然後進行測試,可又出現了錯誤代碼1。哎!怎麼還有問題啊。不過沒關係,一步步來嗎。
      不就是錯誤代碼1嗎,哦,原來是upload_max_filesize限制值太小了,二話不說,改爲10M了。哈哈。。。。。。測試,暈,還是不行。我就繼續找php.ini設置的資料。看到下面的東西:

PHP上傳文件涉及到的參數PHP默認的上傳限定是最大2M,想上傳超過此設定的文件,需要調整PHP、apache等的一些參數. 下面,我們簡要介紹一下PHP文件上傳涉及到的一些參數:

file_uploads 

是否允許通過HTTP上傳文件的開關,默認爲ON即是開

upload_tmp_dir 

upload_tmp_dir用來說明PHP上傳的文件放置的臨時目錄,要想上傳文件,得保證服務器沒有關閉臨時文件和有對文件夾的寫權限,如果未指定則PHP使用系統默認值

upload_max_filesize 

允許上傳文件大小的最大值,默認爲2M

post_max_size 

控制在採用POST方法進行一次表單提交中PHP所能夠接收的最大數據量。如果希望使用PHP文件上傳功能,則需要將此值改爲比upload_max_filesize要大

max_input_time 

以秒爲單位對通過POST、GET以及PUT方式接收數據時間進行限制。如果應用程序所運行環境處在低速鏈路上,則需要增加此值以適應接收數據所需的更多時間

memory_limit 

爲了避免正在運行的腳本大量使用系統可用內存,PHP允許定義內存使用限額。通過memory_limit變量來指定單個腳本程序可以使用的最大內存容量變量memory_limit的值應當適當大於post_max_size的值

max_execution_time 

max_execution_time設置了在強制終止腳本前PHP等待腳本執行完畢的時間,此時間以秒計算。當腳本進入了一個無限循環狀態時此變量非常有用。然而,當存在一個需要很長時間完成的合法活動時(例如上傳大型文件),這項功能也會導致操作失敗。在這樣的情況下必須考慮將此變量值增加,以避免PHP在腳本正在執行某些重要過程的時候將腳本關閉

對於linux主機,可能在/etc/httpd/conf.d/access.conf/下面裏面還有php.conf 文件,這個文件可能會解決一些系統的文件大小限制問題 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章