今天在操作php上傳的時候發現了一個問題,就是當php腳步上傳的檔案大小超過php.ini中post_max_size的限制的時候頁面不會給出提醒,檔案也上傳失敗,這個問題感覺應該算是一個另類,今天跟大家分享一下。
php.ini 配置對php上傳檔案大小的影響參數有:
配置項 可能值 功能描述
file_uploads ON 確定伺服器上的PHP指令碼是否可以接受HTTP檔案上傳
memory_limit 8M 設定指令碼可以分配的最大記憶體量,防止失控的指令碼獨佔伺服器記憶體
upload_max_filesize 2M 限制PHP處理上傳檔案的最大值,此值必須小於post_max_size值
post_max_size 8M 限制通過POST方法可以接受的資訊最大量
而對應的$_FILES 中error對應得錯誤提示有:
檔案上傳時產生的錯誤
0:表示沒有發生任何錯誤,檔案上傳成功
1:表示上傳檔案的大小超出了再PHP設定檔中upload_max_filesize選項限制的值
2:表示上傳檔案大小超出了HTML表單中MAX_FILE_SIZE選項所指定的值
3:表示檔案只被部分上傳
4:表示沒有上傳任何檔案
由此看出php只能對upload_max_filesize這個配置項的限制做出判斷,而對post_max_size則沒有相應的判斷,這時的頁面其實是一個崩潰的狀態,頁面不會給出任何提示。
對於此問題,現在目前想到的方法是通過ini_get()函數擷取到post_max_size配置值,然後送給前台,通過前台驗證。還有一個是直接在後台驗證也是先用ini_get()擷取post_max_size的值,再與要上傳的檔案進行對比,不過這個要先通過ajax擷取到檔案的大小。
qq:411200871(艾維艾科技),如果您有好的方法可以相互溝通.
以上就介紹了PHP上傳檔案大小限制問題 post_max_size對大小的影響及解決方案,包括了上傳檔案,size方面的內容,希望對PHP教程有興趣的朋友有所協助。