如何限制 PHP 檔案上傳的檔案類型和大小?

Susan Sarandon
發布: 2024-11-01 04:58:02
原創
696 人瀏覽過

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

PHP 檔案上傳:有效限製檔案類型和大小

在PHP 中,控製檔案上傳並確保特定檔案類型的接受至關重要。一位用戶最近遇到了現有驗證代碼的問題:

<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>
登入後複製

據該用戶稱,此代碼允許未經授權的文件類型(例如 TXT)通過,並且不強制執行大小限制。

解決方案:依靠MIME 類型和適當的大小檢查

解決對於這些問題,建議採用更可靠的方法:

<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>
登入後複製

說明:

此改進的程式碼使用MIME(多用途互聯網郵件擴充)類型而不是檔案副檔名。 MIME 類型準確地表示文件格式且不易被操縱。此外,它還會獨立檢查履歷和參考文件的文件大小,確保限制得到執行。

以上是如何限制 PHP 檔案上傳的檔案類型和大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!