上傳文件時$_FILES為空,可能的原因及解決方法


上傳視頻的時候打印$_FILES為空,小的文件就沒問題,后來發現是因為傳的文件太大,
出現這個問題的原因主要有兩個:表單原因或者php設置原因:
1,表單類型:
上傳文件的表單編碼類型必須設置成 enctype="multipart/form-data",因為要傳大數據,一般提交方式用POST.
2,php設置問題:
php默認的post_max_size 為2M.如果 POST 數據尺寸大於 post_max_size $_POST 和 $_FILES superglobals 便會為空.
解決的方法是:
(1)在php.ini里查找 max_execution_time 默認是30秒.改為 max_execution_time = 0(可修改范圍為PHP_INI_ALL)0表示沒有限制或者在php文件頭設置
view sourceprint?
1 ini_set('max_execution_time',0);
一般的文件上傳,文件很小.如果文件很大,很可能要超過一分鍾才能上傳完. 但在php中,默認的該頁最久執行時間為 30 秒.就是說超過30秒,該腳本就停止執行. 這就導致出現無法打開網頁的情況.這時我們可以修改 max_execution_time來解決。

(2)修改 post_max_size 設定 POST 數據所允許的最大大小。此設定也影響到文件上傳。 查找 post_max_size .改為 post_max_size = 150M(可修改范圍為PHP_INI_PHP_INI_PERDIR)
(3) 很多人都會改了第二步.但上傳文件時最大仍然為 8M. 這是為什么呢.我們還要改一個參數upload_max_filesize 表示所上傳的文件的最大大小。 查找upload_max_filesize,默認為8M改為 upload_max_filesize = 100M(可修改范圍為PHP_INI_PHP_INI_PERDIR),另外要說明的是,post_max_size 大於 upload_max_filesize 為佳.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM