首頁  >  文章  >  後端開發  >  配置php.ini實作php檔上傳功能

配置php.ini實作php檔上傳功能

伊谢尔伦
伊谢尔伦原創
2016-11-25 13:56:251289瀏覽

php.ini中檔案上傳功能設定選項說明

用文字工具(建議EditPlus)開啟php.ini 設定文件,找出File Uploads ,在這個區域有以下3個選項:

file_uploads = On

是否允許HTTP

file_uploads = On

是否允許HTTP

file_uploads = On

是否允許HTTP

file_uploads = On

是否允許HTTP文件上傳。預設值為On允許HTTP檔案上傳,此選項不能設定為Off。

upload_tmp_dir =


檔案上傳的暫存目錄。如果沒指定則PHP會使用系統預設的暫存目錄。這個選項預設為空,此選項在手動配置PHP運行環境時,也容易遺忘,如果不配置這個選項,文件上傳功能就無法實現,你必須給這個選項賦值,例如upload_tmp_dir = "d:/fileuploadtmp" ,代表在D碟目錄下有一個fileuploadtmp目錄,並且給這目錄讀寫權限。

upload_max_filesize = 2M

上傳檔案的最大尺寸。這個選項預設值為2M,也就是文件上傳的大小為2M,如果你想上傳一個50M的文件,你必須設定 upload_max_filesize = 50M。

但只設定upload_max_filesize = 50M 還是無法實作大檔案的上傳功能,我們也必須修改php.ini檔案中的 post_max_size 選項。

繼續在 php.ini 中查找 Data Handling ,在這個區域有1個選項:

post_max_size = 8M

指透過表單POST給PHP的所能接收的最大值,包括表單裡的所有值。預設為8M。如果POST資料超出限制,那麼$_POST和$_FILES將會為空。

要上傳大文件,你必須設定該選項值大於upload_max_filesize選項的值,例如你設定了upload_max_filesize = 50M ,這裡可以把post_max_size = 100M。

另外如果啟用了記憶體限制,那麼該值應小於memory_limit 選項的值。

繼續在 php.ini 中查找 Resource Limits ,在這個區域有3個選項:

max_execution_time = 30

每個PHP頁面運行的最大時間值(單位秒),預設為30秒。當我們上傳一個較大的文件,例如50M的文件,很可能要幾分鐘才能上傳完,但php預設頁面最久執行時間為30秒,超過30秒,該腳本就停止執行,這就導致出現無法打開網頁的情況。因此我們可以把值設定的較大些,如 max_execution_time = 600。 如果設定為0,則表示無時間限制。


max_input_time = 60

每個PHP腳本解析請求資料所用的時間(單位秒),預設60秒。當我們上傳大檔案時,可以將這個值設定的較大些。 如果設定為0,則表示無時間限制。

memory_limit = 128M

這個選項用來設定單一PHP腳本所能申請到的最大記憶體空間。這有助於防止寫得不好的腳本消耗光伺服器上的可用記憶體。如果不需要任何記憶體上的限制將其設為 -1。
php5.2.0以前的版本預設8M; php.5.2.0版本預設為16M。 php 5.2.0之後的版本預設為 128M;

php.ini 設定上傳檔案功能範例

假設要上傳50M的大檔案。設定php.ini 如下:

file_uploads = On
upload_tmp_dir = "d:/fileuploadtmp"

upload_max_filesize = 50M🎜post_max_size = 100M🎜max_execution_300inft 🎜🎜提示:需要保持memory_limit > post_max_size > upload_max_filesize 🎜🎜此例僅供參考,你可以根據實際情況調整。 🎜🎜🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn