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

首頁 資料庫(kù) mysql教程 如何限制 PHP 檔案上傳的檔案類型和大???

如何限制 PHP 檔案上傳的檔案類型和大?。?/h1> 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查

解決對(duì)於這些問題,建議採(cǎi)用更可靠的方法:

<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ò)充)類型而不是檔案副檔名。 MIME 類型準(zhǔn)確地表示文件格式且不易被操縱。此外,它還會(huì)獨(dú)立檢查履歷和參考文件的文件大小,確保限制得到執(zhí)行。

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

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)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

人工智慧支援投資研究,做出更明智的決策

Clothoff.io

Clothoff.io

AI脫衣器

熱工具

記事本++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值、無重複且定義為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中顯示所有數(shù)據(jù)庫(kù) 如何在MySQL中顯示所有數(shù)據(jù)庫(kù) Aug 08, 2025 am 09:50 AM

要顯示MySQL中的所有數(shù)據(jù)庫(kù),需使用SHOWDATABASES命令;1.登錄MySQL服務(wù)器後執(zhí)行SHOWDATABASES;命令即可列出當(dāng)前用戶有權(quán)訪問的所有數(shù)據(jù)庫(kù);2.系統(tǒng)數(shù)據(jù)庫(kù)如information_schema、mysql、performance_schema和sys默認(rèn)存在,但權(quán)限不足的用戶可能無法看到;3.也可通過SELECTSCHEMA_NAMEFROMinformation_schema.SCHEMATA;查詢並篩選數(shù)據(jù)庫(kù),例如排除系統(tǒng)數(shù)據(jù)庫(kù)以僅顯示用戶創(chuàng)建的數(shù)據(jù)庫(kù);確保使用

如何故障排除常見的mySQL連接錯(cuò)誤? 如何故障排除常見的mySQL連接錯(cuò)誤? Aug 08, 2025 am 06:44 AM

檢查MySQL服務(wù)是否運(yùn)行,使用sudosystemctlstatusmysql確認(rèn)並啟動(dòng);2.確保bind-address設(shè)置為0.0.0.0以允許遠(yuǎn)程連接,並重啟服務(wù);3.驗(yàn)證3306端口是否開放,通過netstat檢查並配置防火牆規(guī)則允許該端口;4.對(duì)於“Accessdenied”錯(cuò)誤,需核對(duì)用戶名、密碼和主機(jī)名,登錄MySQL後查詢mysql.user表確認(rèn)權(quán)限,必要時(shí)創(chuàng)建或更新用戶並授權(quán),如使用'your_user'@'%';5.若因caching_sha2_password導(dǎo)致認(rèn)證失

如何更改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é)果長(zhǎng)度受group_concat_max_len變量限制,可通過SETSESSIONgroup_concat_max_len=10000;調(diào)整;4.SEPARATOR為可選

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

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

See all articles