国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) php教程 php手冊(cè) PHP 文件上傳全攻略

PHP 文件上傳全攻略

Jun 13, 2016 pm 12:16 PM
ENC html php 上傳 全攻略 聲明 屬性 文件 用戶(hù) 表單 部分

1.表單部分
允許用戶(hù)上傳文件,在HTML表單的聲明中要加上一個(gè)上傳的屬性:
enctype = 'multipart/form-data'
表單的method必須是POST
表單選項(xiàng)MAX_FILE_SIZE隱藏域用于限制上傳文件大小,它必須放在文件表單元素前面,單位為字節(jié)。
如:

復(fù)制代碼 代碼如下:







2.處理上傳文件
上傳時(shí),PHP收到關(guān)于該文件的信息數(shù)組,這些信息可以在$_FILES這個(gè)超級(jí)全局?jǐn)?shù)組中找到。
如:如果表單中的文件輸入框名字為upload_file,那么關(guān)于該文件的所有信息都包含在數(shù)組$_FILES['upload_file']里面。
如:客戶(hù)上傳了一個(gè)“aaa.jpg”的圖片數(shù)組值如下:
name "p5pp.jpg" 上傳時(shí)文件的名字
type “image/jpeg" 文件類(lèi)型
tmp_name "/tmp/phpjksdf" 服務(wù)器端的臨時(shí)文件名
error 上傳錯(cuò)誤的返回值
size 2045 文件實(shí)際大小

上面數(shù)組里面的error會(huì)返回不同的常量值,如下:
UPLOAD_ERR_OK 沒(méi)有錯(cuò)誤發(fā)生,文件上傳成功
UPLOAD_ERR_INI_SIZE 文件大小超過(guò)了PHP.INI中upload_max_filesize選項(xiàng)限制的值
UPLOAD_ERR_FORM_SIZE 上傳文件的大小超過(guò)了HTML表單中MAX_FILE_SIZE選項(xiàng)值??稍诔绦蛑袡z查表單$FILES ['up_file']['size']來(lái)處理
UPLOAD_ERR_PARTIAL 文件只有部分被上傳
UPLOAD_ERR_NO_FILE 用戶(hù)沒(méi)有提供任何文件上傳
上傳后處理的具體例子:

復(fù)制代碼 代碼如下:


if(!move_uploaded_file($_FILES['f']['tmp_name'],"uploads/".$_FILES['f']['name'].".jpg")){
echo "error";
}


函數(shù):
move_uploaded_file 移動(dòng)上傳的臨時(shí)文件到指定的目錄下
例子:
move_uploaded_file('臨時(shí)文件名','指定文件路徑')

is_uploaded_file 判斷是否是通過(guò)http Post上傳的文件
例子:

復(fù)制代碼 代碼如下:


if(!is_uploaded_file($_FILES['f']['tmp_name'])){
echo '非法';
}



3.相關(guān)參數(shù)

PHP上傳設(shè)計(jì)到的php.ini中的參數(shù):
file_uploads 是否允許上傳文件,默認(rèn)ON

upload_tmp_dir 上傳文件防止的臨時(shí)目錄,未指定則使用系統(tǒng)默認(rèn)位置

upload_max_filesize 允許上傳文件的大小的最大值,默認(rèn)為2M

post_max_size 控制采用POST方法進(jìn)行一次表單提交中PHP所能接受的最大數(shù)據(jù)量,如果希望用PHP文件上傳,則此值要改為比upload_max_filesize要大

max_input_time 以秒為單位對(duì)通過(guò)POST/GET/PUT方式接受數(shù)據(jù)時(shí)間進(jìn)行限制。

memory_limit 為了避免正在運(yùn)行的腳本大量使用系統(tǒng)內(nèi)存,PHP允許定義內(nèi)存使用限額。通過(guò)設(shè)置此參數(shù)來(lái)制定單個(gè)腳本程序可以使用的最大內(nèi)存容量,應(yīng)適當(dāng)大于post_max_size值

max_execution_time 用來(lái)設(shè)置在強(qiáng)制終止腳本前PHP等待腳本執(zhí)行完畢的時(shí)間,單位秒。次選項(xiàng)可限制死循環(huán)腳本,但當(dāng)存在一個(gè)長(zhǎng)時(shí)間的合法活動(dòng)時(shí)(如:上傳大文件),這項(xiàng)功能也會(huì)導(dǎo)致操作失敗。這樣情況下必須考慮將此變量增加。

4.考慮多文件上傳
可以利用$_FILES數(shù)組就可以輕松實(shí)現(xiàn)多文件上傳。$_FILES數(shù)組可以獲取客戶(hù)端表單里面所有的file域內(nèi)容,從而獲得所有在同一表單上傳的文件。

5.突破上傳的內(nèi)存限制

方法一:
修改php.ini中memory_limit值,改為更大,如 64M
方法二:
使用Apache Rewrite方法,動(dòng)態(tài)修改memory_limit的值。首先建立一個(gè).htaccess文件,保存在上傳文件程序的 當(dāng)前目錄即可.代碼如下:
php_value memory_limit 100M
php_value post_max_size 30M
php_value upload_max_filesize 30M
php_value max_execution_time 300
php_value max_input_tim 300
php_value display_errors On
本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話題

如何在PHP中獲取當(dāng)前的會(huì)話ID? 如何在PHP中獲取當(dāng)前的會(huì)話ID? Jul 13, 2025 am 03:02 AM

在PHP中獲取當(dāng)前會(huì)話ID的方法是使用session_id()函數(shù),但必須先調(diào)用session_start()才能成功獲取。1.調(diào)用session_start()啟動(dòng)會(huì)話;2.使用session_id()讀取會(huì)話ID,輸出類(lèi)似abc123def456ghi789的字符串;3.若返回為空,檢查是否遺漏session_start()、用戶(hù)是否首次訪問(wèn)或會(huì)話是否被銷(xiāo)毀;4.會(huì)話ID可用于日志記錄、安全驗(yàn)證和跨請(qǐng)求通信,但需注意安全性。確保正確開(kāi)啟會(huì)話后即可順利獲取ID。

php從字符串獲取子字符串 php從字符串獲取子字符串 Jul 13, 2025 am 02:59 AM

要從PHP字符串中提取子字符串,可使用substr()函數(shù),其語(yǔ)法為substr(string$string,int$start,?int$length=null),若未指定長(zhǎng)度則截取至末尾;處理多字節(jié)字符如中文時(shí)應(yīng)使用mb_substr()函數(shù)以避免亂碼;若需根據(jù)特定分隔符截取字符串,可使用explode()或結(jié)合strpos()與substr()實(shí)現(xiàn),例如提取文件名擴(kuò)展名或域名。

如何將字符串分為PHP中的數(shù)組 如何將字符串分為PHP中的數(shù)組 Jul 13, 2025 am 02:59 AM

在PHP中,最常用的方法是使用explode()函數(shù)將字符串拆分為數(shù)組。該函數(shù)通過(guò)指定的分隔符將字符串分割成多個(gè)部分并返回?cái)?shù)組,語(yǔ)法為explode(separator,string,limit),其中separator為分隔符,string為原字符串,limit為可選參數(shù)控制最大分割數(shù)量。例如$str="apple,banana,orange";$arr=explode(",",$str);結(jié)果為["apple","bana

JavaScript數(shù)據(jù)類(lèi)型:原始與參考 JavaScript數(shù)據(jù)類(lèi)型:原始與參考 Jul 13, 2025 am 02:43 AM

JavaScript的數(shù)據(jù)類(lèi)型分為原始類(lèi)型和引用類(lèi)型。原始類(lèi)型包括string、number、boolean、null、undefined和symbol,其值不可變且賦值時(shí)復(fù)制副本,因此互不影響;引用類(lèi)型如對(duì)象、數(shù)組和函數(shù)存儲(chǔ)的是內(nèi)存地址,指向同一對(duì)象的變量會(huì)相互影響。判斷類(lèi)型可用typeof和instanceof,但需注意typeofnull的歷史問(wèn)題。理解這兩類(lèi)差異有助于編寫(xiě)更穩(wěn)定可靠的代碼。

在C中使用std :: Chrono 在C中使用std :: Chrono Jul 15, 2025 am 01:30 AM

std::chrono在C 中用于處理時(shí)間,包括獲取當(dāng)前時(shí)間、測(cè)量執(zhí)行時(shí)間、操作時(shí)間點(diǎn)與持續(xù)時(shí)間及格式化解析時(shí)間。1.獲取當(dāng)前時(shí)間使用std::chrono::system_clock::now(),可轉(zhuǎn)換為可讀字符串但系統(tǒng)時(shí)鐘可能不單調(diào);2.測(cè)量執(zhí)行時(shí)間應(yīng)使用std::chrono::steady_clock以確保單調(diào)性,并通過(guò)duration_cast轉(zhuǎn)換為毫秒、秒等單位;3.時(shí)間點(diǎn)(time_point)和持續(xù)時(shí)間(duration)可相互操作,但需注意單位兼容性和時(shí)鐘紀(jì)元(epoch)

PHP如何處理環(huán)境變量? PHP如何處理環(huán)境變量? Jul 14, 2025 am 03:01 AM

toAccessenvironmentVariablesInphp,useGetenv()或$ _envsuperglobal.1.getEnv('var_name')retievesSpecificvariable.2。$ _ en v ['var_name'] accessesvariablesifvariables_orderInphp.iniincludes“ e” .setVariablesViaCliWithvar = vualitephpscript.php,inapach

為什么我們?cè)u(píng)論:PHP指南 為什么我們?cè)u(píng)論:PHP指南 Jul 15, 2025 am 02:48 AM

PHPhasthreecommentstyles://,#forsingle-lineand/.../formulti-line.Usecommentstoexplainwhycodeexists,notwhatitdoes.MarkTODO/FIXMEitemsanddisablecodetemporarilyduringdebugging.Avoidover-commentingsimplelogic.Writeconcise,grammaticallycorrectcommentsandu

See all articles