1. 程式人生 > >修改php檔案上傳的大小限制upload_max_filesize

修改php檔案上傳的大小限制upload_max_filesize

Question

當php指令碼上傳的檔案大小超過php.ini中post_max_size,upload_max_filesize的限制的時候頁面不會給出提醒,檔案也上傳失敗。
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獲取到檔案的大小。

php.ini檔案的位置

在伺服器web根目錄下面新建一個php檔案

<?php
echo phpinfo();

找到:
這裡寫圖片描述
第二行就是php.ini的位置了,開啟檔案之後根據第一步描述的修改值就行了。