首頁  >  文章  >  後端開發  >  使用PHP處理POST上傳時$_FILES數組為何為空

使用PHP處理POST上傳時$_FILES數組為何為空

巴扎黑
巴扎黑原創
2016-11-24 09:21:501244瀏覽

 在做一個簡單的表單上傳測試時,服務端的php腳本中,$_FILES數組為空;這樣就不能獲取從瀏覽器上傳的信息.什麼原因呢?

      通過谷歌,找到下面這個web:

      通過谷歌,找到下面這個web:

      通過谷歌,找到下面這個web:

      通過谷歌,找到下面這個web:

      通過Google php上傳檔案$_FILES陣列為空的解決方法


      在測試時遇到的情況,屬於文中描述的第一種原因,即:上傳檔案的表單中未設定屬性enctype="multipart/form- data".


      以下將其全文轉貼於下方:




php上傳檔案$_FILES陣列為空的解決方法: 
用php做檔案的應用程式空白時,在後台陣列為空的解決方法: 
用php做檔案的應用程式空數組,出現這個問題可能有以下兩個原因: 
表單類型原因或php設定問題: 
1,表單類型: 
上傳檔案的表單編碼類型必須設定成enctype="multipart/form-data",因為要傳大數據,一般提交方式用POST。

2,php設定問題: 

php預設的post_max_size 為2M.如果POST 資料尺寸大於post_max_size $_POST 與$_FILES 超全域變數會為空. 解決的方法是: 
1. 一般的檔案上傳, 逾全域檔案很小.就像一個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); 🎜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是上傳檔案的大小,前者🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP 排列組合下一篇:PHP 排列組合