在做一個簡單的表單上傳測試時,服務端的php腳本中,$_FILES 數組為空;這樣就不能獲取從瀏覽器上傳的信息.什么原因呢? 通過Google,找到下面這個 php上傳文件$_FILES 數組為空的解決辦法:
用php做上傳文件的應用時,在后臺打印$_FILES時發現為空數組,出現這個問題可能有以下兩個原因: 表單類型原因或者php設置問題:
表單類型 上傳文件的表單編碼類型必須設置成 enctype=”multipart/form-data”,因為要傳大數據,一般提交方式用POSTphp設置問題: php默認的post_max_size 為2M.如果 POST 數據尺寸大于 post_max_size , $_POST 和 $_FILES 超全局變量便會為空. 解決的方法是: 一般的文件上傳,除非文件很小.就像一個5M的文件,很可能要超過一分鐘才能上傳完. 但在php中,默認的該頁最久執行時間為 30 秒.就是說超過30秒,該腳本就停止執行. 這就導致出現 無法打開網頁的情況.這時我們可以修改 max_execution_time 在php.ini里查找 max_execution_time 默認是30秒.改為 max_execution_time = 0(可修改范圍為PHP_INI_ALL) 0表示沒有限制 或者在php文件頭設置ini_set(‘max_execution_time’,0); 修改 post_max_size 設定 POST 數據所允許的最大大小。此設定也影響到文件上傳。 查找 post_max_size .改為 post_max_size = 150M(可修改范圍為PHP_INI_PHP_INI_PERDIR) 很多人都會改了第二步.但上傳文件時最大仍然為 8M. 為什么呢.我們還要改一個參數upload_max_filesize 表示所上傳的文件的最大大小。 查找upload_max_filesize,默認為8M改為 upload_max_filesize = 100M(可修改范圍為PHP_INI_PHP_INI_PERDIR) 另外要說明的是post_max_size是整個表達的大小,而upload_max_filesize是上傳文件的大小,前者應大于后者.新聞熱點
疑難解答
圖片精選