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

首頁 數(shù)據(jù)庫 mysql教程 如何限制 PHP 文件上傳的文件類型和大???

如何限制 PHP 文件上傳的文件類型和大小?

Nov 01, 2024 am 04:58 AM

How to Restrict File Types and Size in PHP File Uploads?

PHP 文件上傳:有效限制文件類型和大小

在 PHP 中,控制文件上傳并確保特定文件類型的接受至關(guān)重要。一位用戶最近遇到了現(xiàn)有驗(yàn)證代碼的問題:

<code class="php">//check file extension and size
$resume= ($_FILES['resume']['name']);
$reference= ($_FILES['reference']['name']);
$ext = strrchr($resume, ".");
$ext1 = strrchr($reference, ".");
if (!(($_FILES["resume"]["type"] == "application/doc")
|| ($_FILES["resume"]["type"] == "application/docx")
|| ($_FILES["resume"]["type"] == "application/pdf" ))
&& (($_FILES["reference"]["type"] == "application/doc")
|| ($_FILES["reference"]["type"] == "application/docx")
|| ($_FILES["reference"]["type"] == "application/pdf"))
&& (($ext == ".pdf") || ($ext == ".doc") || ($ext == ".docx"))
&& (($ext1 == ".pdf") || ($ext1 == ".doc") || ($ext1 == ".docx"))
&&  ($_FILES["resume"]["size"] < 400000) //accept upto 500 kb
&&  ($_FILES["reference"]["size"] < 400000)) {

//stop user
} else {
// allow files to upload
}</code>

據(jù)該用戶稱,此代碼允許未經(jīng)授權(quán)的文件類型(例如 TXT)通過,并且不強(qiáng)制執(zhí)行大小限制。

解決方案:依靠 MIME 類型和適當(dāng)?shù)拇笮z查

為了解決這些問題,建議采用更強(qiáng)大的方法:

<code class="php">function allowed_file(){

//Allowed mime-type files
$allowed = array('application/doc', 'application/pdf', 'another/type');

//Validate uploaded file type
if(in_array($_FILES['resume']['type'], $allowed) AND in_array($_FILES['reference']['type'], $allowed)){

//Check file size
if($_FILES["resume"]["size"] < 400000 AND $_FILES["reference"]["size"] < 400000 ){

//File types and size are accepted, proceed with file processing
}
}
}</code>

解釋:

此改進(jìn)的代碼使用 MIME(多用途互聯(lián)網(wǎng)郵件擴(kuò)展)類型而不是文件擴(kuò)展名。 MIME 類型準(zhǔn)確地表示文件格式并且不易被操縱。此外,它還會(huì)獨(dú)立檢查簡歷和參考文件的文件大小,確保限制得到執(zhí)行。

以上是如何限制 PHP 文件上傳的文件類型和大???的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(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

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

Stock Market GPT

Stock Market GPT

人工智能驅(qū)動(dòng)投資研究,做出更明智的決策

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何在mySQL中使用cocecce()函數(shù)? 如何在mySQL中使用cocecce()函數(shù)? Aug 14, 2025 pm 06:15 PM

cocece()返回forthefirstnon-nullvaluefromalistofexpressions,啟用gracefulhandlinglinglingofmissingdatabysubstitutingdefaults,MergingColumnValues,supportingCalcalculationSwithOptionalFields和Providing Fallbacksinjoinsandagggregregregations,Ensurnistrictabl

如何在MySQL中的現(xiàn)有表中添加主鍵? 如何在MySQL中的現(xiàn)有表中添加主鍵? Aug 12, 2025 am 04:11 AM

要為現(xiàn)有表添加主鍵,需使用ALTERTABLE語句配合ADDPRIMARYKEY子句。1.確保目標(biāo)列無NULL值、無重復(fù)且定義為NOTNULL;2.單列主鍵語法為ALTERTABLE表名ADDPRIMARYKEY(列名);3.多列組合主鍵語法為ALTERTABLE表名ADDPRIMARYKEY(列1,列2);4.若列允許NULL,需先執(zhí)行MODIFY設(shè)置為NOTNULL;5.每張表僅能有一個(gè)主鍵,添加前需刪除舊主鍵;6.如需自增,可使用MODIFY設(shè)置AUTO_INCREMENT。操作前確保數(shù)據(jù)

如何更改mySQL中的group_concat分離器 如何更改mySQL中的group_concat分離器 Aug 22, 2025 am 10:58 AM

可以通過在GROUP_CONCAT()函數(shù)中使用SEPARATOR關(guān)鍵字來自定義分隔符;1.使用SEPARATOR指定自定義分隔符,如SEPARATOR';'可將分隔符改為分號(hào)加空格;2.常見示例包括使用管道符'|'、空格''、換行符'\n'或自定義字符串'->'作為分隔符;3.注意分隔符必須為字符串字面量或表達(dá)式,且結(jié)果長度受group_concat_max_len變量限制,可通過SETSESSIONgroup_concat_max_len=10000;調(diào)整;4.SEPARATOR為可選

如何在MySQL中備份數(shù)據(jù)庫 如何在MySQL中備份數(shù)據(jù)庫 Aug 11, 2025 am 10:40 AM

使用mysqldump是備份MySQL數(shù)據(jù)庫最常用且有效的方法,它能生成包含表結(jié)構(gòu)和數(shù)據(jù)的SQL腳本。1.基本語法為:mysqldump-u[用戶名]-p[數(shù)據(jù)庫名]>backup_file.sql,執(zhí)行后輸入密碼即可生成備份文件。2.備份多個(gè)數(shù)據(jù)庫使用--databases選項(xiàng):mysqldump-uroot-p--databasesdb1db2>multiple_dbs_backup.sql。3.備份所有數(shù)據(jù)庫使用--all-databases:mysqldump-uroot-p

在MySQL中,聯(lián)盟和聯(lián)盟之間有什么區(qū)別? 在MySQL中,聯(lián)盟和聯(lián)盟之間有什么區(qū)別? Aug 14, 2025 pm 05:25 PM

UNIONremovesduplicateswhileUNIONALLkeepsallrowsincludingduplicates;1.UNIONperformsdeduplicationbysortingandcomparingrows,returningonlyuniqueresults,whichmakesitsloweronlargedatasets;2.UNIONALLincludeseveryrowfromeachquerywithoutcheckingforduplicates,

如何在mysql中鎖定桌子 如何在mysql中鎖定桌子 Aug 15, 2025 am 04:04 AM

使用LOCKTABLES可手動(dòng)鎖定表,READ鎖允許多會(huì)話讀但不可寫,WRITE鎖為當(dāng)前會(huì)話提供獨(dú)占讀寫權(quán)限且其他會(huì)話無法讀寫;2.鎖定僅限當(dāng)前連接,執(zhí)行STARTTRANSACTION等命令會(huì)隱式釋放鎖,鎖定后只能訪問被鎖表;3.僅在MyISAM表維護(hù)、數(shù)據(jù)備份等特定場(chǎng)景使用,InnoDB應(yīng)優(yōu)先使用事務(wù)和行級(jí)鎖如SELECT...FORUPDATE以避免性能問題;4.操作完成后必須執(zhí)行UNLOCKTABLES顯式釋放鎖,否則可能導(dǎo)致資源阻塞。

如何從MySQL中的表中選擇數(shù)據(jù)? 如何從MySQL中的表中選擇數(shù)據(jù)? Aug 19, 2025 pm 01:47 PM

要從MySQL表中選擇數(shù)據(jù),應(yīng)使用SELECT語句,1.使用SELECTcolumn1,column2FROMtable_name獲取指定列,或使用SELECT*獲取所有列;2.使用WHERE子句過濾行,如SELECTname,ageFROMusersWHEREage>25;3.使用ORDERBY對(duì)結(jié)果排序,如ORDERBYageDESC表示按年齡降序排列;4.使用LIMIT限制返回行數(shù),如LIMIT5返回前5行,或使用LIMIT10OFFSET20實(shí)現(xiàn)分頁;5.使用AND、OR和括號(hào)組合

如何在mysql中使用ifnull()? 如何在mysql中使用ifnull()? Aug 22, 2025 pm 02:00 PM

ifnull()inMysqlreturnsthefirstexpressionFressiviationNotnull,eletherTerntherStheSecondexondsexondsexond,makeitiTIDealForPlacingNullValueswithDefaults; forexample,forexample,ifnull(midder_name,'n/a')顯示了“

See all articles