php.ini 簡介

PHP實現(xiàn)文件上傳功能時幾點關(guān)鍵php.ini的配置饵撑。
  說到在php.ini中的文件上傳的配置播赁,其實在之前介紹PHP文件上傳功能代碼實例教程以及Jquery AjaxUpload實現(xiàn)文件上傳功能代碼實例教程時我都有所提及寞焙。PHP文件上傳功能配置主要涉及php.ini配置文件中的upload_tmp_dir吕粗、upload_max_filesize、post_max_size等選項饱搏。
  php.ini中文件上傳功能配置選項說明
  打開php.ini配置文件找到File Uploads
  file_uploads = On
  默認(rèn)允許HTTP文件上傳非剃,此選項不能設(shè)置為OFF。
  upload_tmp_dir =
  默認(rèn)為空推沸,此選項在手動配置PHP運行環(huán)境時备绽,也容易遺忘券坞,如果不配置這個選項,文件上傳功能就無法實現(xiàn)肺素,這個選項設(shè)置的是文件上傳時存放文件的臨時目錄恨锚,你必須給這個選項賦值,比如upload_tmp_dir ='/leapsoulcn'倍靡,代表在C盤目錄下有一個leapsoulcn目錄猴伶,和session配置一樣,如果你是在linux環(huán)境下塌西,你必須賦予這個目錄可寫權(quán)限他挎。
  如何上傳超過8M的大文件?
  上傳大文件主要涉及配置upload_max_filesize和post_max_size兩個選項捡需。
  php.ini配置文件中的默認(rèn)文件上傳大小為2M办桨,php初學(xué)者容易犯的一個錯誤是在編寫文件上傳功能時通過設(shè)置上傳文件最大大小的表單區(qū)域,即允許上傳文件的最大值站辉,max_file_size(隱藏值域)的值來規(guī)定上傳文件的大小呢撞,其實一般別人可以繞過這個值,所以安全起見饰剥,最好是在php.ini配置文件中配置upload_max_filesize選項殊霞,設(shè)定文件上傳的大小。
  默認(rèn)upload_max_filesize = 2M汰蓉,即文件上傳的大小為2M脓鹃,如果你想上傳超過8M的文件,比如20M古沥,你必須設(shè)定upload_max_filesize = 20M瘸右。
  但是光設(shè)置upload_max_filesize = 20M還是無法實現(xiàn)大文件的上傳功能,你必須修改php.ini配置文件中的post_max_size選項岩齿,其代表允許POST的數(shù)據(jù)最大字節(jié)長度太颤,默認(rèn)為8M。如果POST數(shù)據(jù)超出限制盹沈,那么$_POST和$_FILES將會為空龄章。要上傳大文件,你必須設(shè)定該選項值大于upload_max_filesize指令的值乞封,我一般設(shè)定upload_max_filesize和post_max_size值相等做裙。另外如果啟用了內(nèi)存限制,那么該值應(yīng)當(dāng)小于memory_limit選項的值肃晚。
  文件上傳的其他注意事項
  在上傳大文件時锚贱,你會有上傳速度慢的感覺,當(dāng)超過一定的時間关串,會報腳本執(zhí)行超過30秒的錯誤拧廊,這是因為在php.ini配置文件中max_execution_time配置選項在作怪监徘,其表示每個腳本最大允許執(zhí)行時間(秒),0 表示沒有限制吧碾。你可以適當(dāng)調(diào)整max_execution_time的值凰盔,不推薦設(shè)定為0。
  至此倦春,在php.ini配置文件中對文件上傳選項進行配置的PHP教程就介紹完畢了户敬,通過上面的步驟實踐與學(xué)習(xí),再結(jié)合PHP程序睁本,文件上傳功能就可以實現(xiàn)了尿庐。
下面是一些補充:
本文介紹了如何配置php.ini實現(xiàn)PHP文件上傳功能。其中涉及到php.ini配置文件中的upload_tmp_dir添履、upload_max_filesize、post_max_size等選項脑又,這些選項是文件上傳成敗的關(guān)鍵暮胧。我們以php.5.3.5的Windows版本為例說明。
php.ini中文件上傳功能配置選項說明用文本工具(推薦EditPlus)打開php.ini 配置文件问麸,查找 File Uploads 往衷,在這個區(qū)域有以下3個選項:
file_uploads = On
是否允許HTTP文件上傳。默認(rèn)值為On允許HTTP文件上傳严卖,此選項不能設(shè)置為Off席舍。
upload_tmp_dir =
文件上傳的臨時存放目錄。如果沒指定則PHP會使用系統(tǒng)默認(rèn)的臨時目錄哮笆。該選項默認(rèn)為空来颤,此選項在手動配置PHP運行環(huán)境時,也容易遺忘稠肘,如果不配置這個選項福铅,文件上傳功能就無法實現(xiàn),你必須給這個選項賦值项阴,比如upload_tmp_dir = "d:/fileuploadtmp" 滑黔,代表在D盤目錄下有一個fileuploadtmp目錄,并且給這目錄讀寫權(quán)限环揽。
upload_max_filesize = 2M
上傳文件的最大尺寸略荡。這個選項默認(rèn)值為2M,即文件上傳的大小為2M歉胶,如果你想上傳一個50M的文件汛兜,你必須設(shè)定 upload_max_filesize = 50M。但是僅設(shè)置upload_max_filesize = 50M 還是無法實現(xiàn)大文件的上傳功能通今,我們還必須修改php.ini文件中的 post_max_size 選項序无。
繼續(xù)在 php.ini 中查找 Data Handling 验毡,在這個區(qū)域有1個選項:
post_max_size = 8M
指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值帝嗡。默認(rèn)為8M晶通。如果POST數(shù)據(jù)超出限制,那么$_POST和$_FILES將會為空哟玷。要上傳大文件狮辽,你必須設(shè)定該選項值大于upload_max_filesize選項的值,例如你設(shè)置了upload_max_filesize = 50M 巢寡,這里可以把post_max_size = 100M喉脖。另外如果啟用了內(nèi)存限制,那么該值應(yīng)當(dāng)小于memory_limit 選項的值抑月。
繼續(xù)在 php.ini 中查找 Resource Limits 树叽,在這個區(qū)域有3個選項:
max_execution_time = 30
每個PHP頁面運行的最大時間值(單位秒),默認(rèn)30秒谦絮。當(dāng)我們上傳一個較大的文件题诵,例如50M的文件,很可能要幾分鐘才能上傳完层皱,但php默認(rèn)頁面最久執(zhí)行時間為30秒性锭,超過30秒,該腳本就停止執(zhí)行叫胖,這就導(dǎo)致出現(xiàn)無法打開網(wǎng)頁的情況草冈。因此我們可以把值設(shè)置的較大些,如 max_execution_time = 600瓮增。 如果設(shè)置為0怎棱,則表示無時間限制。
max_input_time = 60
每個PHP腳本解析請求數(shù)據(jù)所用的時間(單位秒)绷跑,默認(rèn)60秒蹄殃。當(dāng)我們上傳大文件時,可以將這個值設(shè)置的較大些你踩。 如果設(shè)置為0诅岩,則表示無時間限制。
memory_limit = 128M
這個選項用來設(shè)置單個PHP腳本所能申請到的最大內(nèi)存空間带膜。這有助于防止寫得不好的腳本消耗光服務(wù)器上的可用內(nèi)存吩谦。如果不需要任何內(nèi)存上的限制將其設(shè)為 -1。php5.2.0以前的版本默認(rèn)8M; php.5.2.0版本默認(rèn)為16M膝藕。php 5.2.0之后的版本默認(rèn)為 128M;
php.ini 配置上傳文件功能示例假設(shè)要上傳一個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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市芭挽,隨后出現(xiàn)的幾起案子滑废,更是在濱河造成了極大的恐慌蝗肪,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蠕趁,死亡現(xiàn)場離奇詭異薛闪,居然都是意外死亡,警方通過查閱死者的電腦和手機俺陋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門豁延,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腊状,你說我怎么就攤上這事诱咏。” “怎么了缴挖?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵袋狞,是天一觀的道長。 經(jīng)常有香客問我映屋,道長苟鸯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任秧荆,我火速辦了婚禮倔毙,結(jié)果婚禮上埃仪,老公的妹妹穿的比我還像新娘乙濒。我一直安慰自己,他們只是感情好卵蛉,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布颁股。 她就那樣靜靜地躺著,像睡著了一般傻丝。 火紅的嫁衣襯著肌膚如雪甘有。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天葡缰,我揣著相機與錄音亏掀,去河邊找鬼。 笑死泛释,一個胖子當(dāng)著我的面吹牛滤愕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播怜校,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼间影,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了茄茁?” 一聲冷哼從身側(cè)響起魂贬,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤巩割,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后付燥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宣谈,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年机蔗,在試婚紗的時候發(fā)現(xiàn)自己被綠了蒲祈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡萝嘁,死狀恐怖梆掸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情牙言,我是刑警寧澤酸钦,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站咱枉,受9級特大地震影響卑硫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚕断,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一欢伏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧亿乳,春花似錦硝拧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至聊训,卻和暖如春抱究,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背带斑。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工鼓寺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人勋磕。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓妈候,卻偏偏與公主長得像,于是被迫代替她去往敵國和親朋凉。 傳聞我的和親對象是個殘疾皇子州丹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容