php文件上傳你必須知道的幾點(diǎn)
本篇文章主要說(shuō)明的是與php文件上傳的相關(guān)配置的知識(shí)點(diǎn)。PHP文件上傳功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等選項(xiàng),下面一一說(shuō)明。
打開(kāi)php.ini配置文件找到File Uploads
file_uploads = On
默認(rèn)允許HTTP文件上傳,此選項(xiàng)不能設(shè)置為OFF。
upload_tmp_dir =
默認(rèn)為空,此選項(xiàng)在手動(dòng)配置PHP運(yùn)行環(huán)境時(shí),也容易遺忘,如果不配置這個(gè)選項(xiàng),文件上傳功能就無(wú)法實(shí)現(xiàn),這個(gè)選項(xiàng)設(shè)置的是文件上傳時(shí)存放文件的臨時(shí)目錄,你必須給這個(gè)選項(xiàng)賦值,比如upload_tmp_dir ='/leapsoulcn',代表在C盤(pán)目錄下有一個(gè)leapsoulcn目錄,和session配置一樣,如果你是在linux環(huán)境下,你必須賦予這個(gè)目錄可寫(xiě)權(quán)限。
如何上傳超過(guò)8M的大文件?
上傳大文件主要涉及配置upload_max_filesize和post_max_size兩個(gè)選項(xiàng)。
php.ini配置文件中的默認(rèn)文件上傳大小為2M,php初學(xué)者容易犯的一個(gè)錯(cuò)誤是在編寫(xiě)文件上傳功能時(shí)通過(guò)設(shè)置上傳文件最大大小的表單區(qū)域,即允許上傳文件的最大值,max_file_size(隱藏值域)的值來(lái)規(guī)定上傳文件的大小,其實(shí)一般別人可以繞過(guò)這個(gè)值,所以安全起見(jiàn),最好是在php.ini配置文件中配置upload_max_filesize選項(xiàng),設(shè)定文件上傳的大小。
默認(rèn)upload_max_filesize = 2M,即文件上傳的大小為2M,如果你想上傳超過(guò)8M的文件,比如20M,你必須設(shè)定upload_max_filesize = 20M。
但是光設(shè)置upload_max_filesize = 20M還是無(wú)法實(shí)現(xiàn)大文件的上傳功能,你必須修改php.ini配置文件中的post_max_size選項(xiàng),其代表允許POST的數(shù)據(jù)最大字節(jié)長(zhǎng)度,默認(rèn)為8M。如果POST數(shù)據(jù)超出限制,那么$_POST和$_FILES將會(huì)為空。要上傳大文件,你必須設(shè)定該選項(xiàng)值大于upload_max_filesize指令的值,我一般設(shè)定upload_max_filesize和post_max_size值相等。另外如果啟用了內(nèi)存限制,那么該值應(yīng)當(dāng)小于memory_limit選項(xiàng)的值。
文件上傳的其他注意事項(xiàng)
在上傳大文件時(shí),你會(huì)有上傳速度慢的感覺(jué),當(dāng)超過(guò)一定的時(shí)間,會(huì)報(bào)腳本執(zhí)行超過(guò)30秒的錯(cuò)誤,這是因?yàn)樵趐hp.ini配置文件中max_execution_time配置選項(xiàng)在作怪,其表示每個(gè)腳本最大允許執(zhí)行時(shí)間(秒),0 表示沒(méi)有限制。你可以適當(dāng)調(diào)整max_execution_time的值,不推薦設(shè)定為0。
至此,在php.ini配置文件中對(duì)文件上傳選項(xiàng)進(jìn)行配置的PHP教程就介紹完畢了,通過(guò)上面的步驟實(shí)踐與學(xué)習(xí),再結(jié)合PHP程序,文件上傳功能就可以實(shí)現(xiàn)了。
更多關(guān)于PHP文件上傳的精彩內(nèi)容請(qǐng)關(guān)注專(zhuān)題《PHP文件上傳匯總》,希望對(duì)大家有幫助。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP學(xué)習(xí)記錄之面向?qū)ο螅∣bject-oriented programming,OOP)基礎(chǔ)【類(lèi)、對(duì)象、繼承等】
這篇文章主要介紹了PHP學(xué)習(xí)記錄之面向?qū)ο螅∣bject-oriented programming,OOP)基礎(chǔ),結(jié)合實(shí)例形式分析了PHP類(lèi)、對(duì)象、繼承等相關(guān)概念、原理、使用技巧及操作注意事項(xiàng),需要的朋友可以參考下2019-12-12詳解PHP中數(shù)組函數(shù)的知識(shí)點(diǎn)
PHP 的數(shù)組是一種很強(qiáng)大的數(shù)據(jù)類(lèi)型,與此同時(shí) PHP 內(nèi)置了一系列與數(shù)組相關(guān)的函數(shù)可以很輕易的實(shí)現(xiàn)日常開(kāi)發(fā)的功能。所以本文便總結(jié)了一些在常見(jiàn)場(chǎng)景中利用 PHP 內(nèi)置函數(shù)的實(shí)現(xiàn)方法,希望對(duì)你有所幫助2022-11-11php中base_convert()進(jìn)制數(shù)字轉(zhuǎn)換函數(shù)實(shí)例
這篇文章主要介紹了php中base_convert()進(jìn)制數(shù)字轉(zhuǎn)換函數(shù),以實(shí)例形式演示了十進(jìn)制數(shù)與二進(jìn)制、八進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換方法,具有很好的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11php漏洞之跨網(wǎng)站請(qǐng)求偽造與防止偽造方法
今天我來(lái)給大家介紹在php中跨網(wǎng)站請(qǐng)求偽造的實(shí)現(xiàn)方法與最后我們些常用的防止偽造的具體操作方法,有需要了解的朋友可進(jìn)入?yún)⒖?/div> 2013-08-08PHP實(shí)現(xiàn)將優(yōu)酷土豆騰訊視頻html地址轉(zhuǎn)換成flash swf地址的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)將優(yōu)酷土豆騰訊視頻html地址轉(zhuǎn)換成flash swf地址的方法,涉及php根據(jù)各個(gè)網(wǎng)站的網(wǎng)址規(guī)則針對(duì)URL地址的正則匹配與轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2017-08-08php curl post 時(shí)出現(xiàn)的問(wèn)題解決
這篇文章主要介紹了php curl post 時(shí)出現(xiàn)問(wèn)題的解決方法,需要的朋友可以參考下2014-01-01php簡(jiǎn)單計(jì)算頁(yè)面加載時(shí)間的方法
這篇文章主要介紹了php簡(jiǎn)單計(jì)算頁(yè)面加載時(shí)間的方法,涉及php針對(duì)頁(yè)面加載時(shí)間的計(jì)算技巧,需要的朋友可以參考下2015-06-06最新評(píng)論