PHP上傳文件大小限制問題 post_max_size對大小的影響及解決方法


今天在操作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(艾維艾科技),如果您有好的方法可以相互溝通.


免責聲明!

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



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