首頁 > 後端開發 > php教程 > 如何可靠地檢測 PHP 中的文件類型以防止上傳問題?

如何可靠地檢測 PHP 中的文件類型以防止上傳問題?

Linda Hamilton
發布: 2024-11-30 09:49:10
原創
689 人瀏覽過

How Can I Reliably Detect File Types in PHP to Prevent Upload Issues?

在PHP 中偵測檔案類型:上傳問題故障排除

您在使用$_FILES['fupload' 驗證圖片檔案類型時遇到挑戰]['類型']。使用者報告了不一致的錯誤訊息,表明此方法可能不可靠。

為了確保準確的檔案類型偵測,請考慮替代方法:

使用mime_content_type

您使用mime_content_type($_FILES['fupload'] ['type']) 的建議部分正確。但是,仍然不建議僅依賴使用者提供的值(即檔案的 MIME 類型)。用戶可以輕鬆地操縱這些資訊。

更可靠的方法

對於圖像文件,類型驗證的首選方法是使用exif_imagetype 函數,如下所示:

$allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
$detectedType = exif_imagetype($_FILES['fupload']['tmp_name']);
$error = !in_array($detectedType, $allowedTypes);
登入後複製
  • exif_imagetype傳回偵測到的圖片類型(例如,IMAGETYPE_PNG)
  • $allowedTypes 陣列定義可接受的圖片類型
  • $error 變數指示檔案類型是否不允許(True)或有效(False)

使用finfo函數

如果如果您的伺服器支援finfo 擴展,您可以利用finfo_file 等函數來獲取詳細的文件信息,包括其MIME 類型和其他屬性:

$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime_type = $finfo->file($_FILES['fupload']['tmp_name']);
$error = ($mime_type != 'image/gif' && $mime_type != 'image/png' && $mime_type != 'image/jpeg');
登入後複製

透過使用這些方法,您可以可靠地驗證文件類型並防止意外文件上傳期間發生錯誤。

以上是如何可靠地檢測 PHP 中的文件類型以防止上傳問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板