配置php.ini實現PHP文件上傳功能

本文介紹瞭如何配置php.ini實現PHP文件上傳功能。其中涉及到php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等選項,這些選項是文件上傳成敗的關鍵。咱們以php.5.3.5的Windows版本爲例說明。php

php.ini中文件上傳功能配置選項說明

用文本工具(推薦EditPlus)打開php.ini 配置文件,查找 File Uploads ,在這個區域有如下3個選項:服務器

file_uploads = On工具

是否容許HTTP文件上傳。默認值爲On容許HTTP文件上傳,此選項不能設置爲Off。post

upload_tmp_dir =內存

文件上傳的臨時存放目錄。若是沒指定則PHP會使用系統默認的臨時目錄。該選項默認爲空,此選項在手動配置PHP運行環境時,也容易遺忘,若是不配置這個選項,文件上傳功能就沒法實現,你必須給這個選項賦值,好比upload_tmp_dir = "d:/fileuploadtmp" ,表明在D盤目錄下有一個fileuploadtmp目錄,而且給這目錄讀寫權限。input

upload_max_filesize = 2M文件上傳

上傳文件的最大尺寸。這個選項默認值爲2M,即文件上傳的大小爲2M,若是你想上傳一個50M的文件,你必須設定 upload_max_filesize = 50M。
可是僅設置upload_max_filesize = 50M 仍是沒法實現大文件的上傳功能,咱們還必須修改php.ini文件中的 post_max_size 選項。it

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

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 = Onupload_tmp_dir = "d:/fileuploadtmp"upload_max_filesize = 50Mpost_max_size = 100Mmax_execution_time = 600max_input_time = 600memory_limit = 128M提示:須要保持 memory_limit > post_max_size > upload_max_filesize此例僅供參考,你能夠根據實際狀況調整。

相關文章
相關標籤/搜索