首頁 > web前端 > js教程 > 瀏覽器如何在文件上傳之前可靠地檢查 MIME 類型?

瀏覽器如何在文件上傳之前可靠地檢查 MIME 類型?

DDD
發布: 2024-12-02 04:12:14
原創
209 人瀏覽過

How Can Browsers Reliably Check MIME Types Before File Upload?

瀏覽器端MIME 檢查的工作原理以及為什麼它很棘手

JavaScript 可以在上傳文件之前確定文件MIME 類型,但要驗證它們為了安全起見,在伺服器端。

第1 步:使用FileReader API

取得文件資訊:

var files = document.getElementsByTagName('input')[0].files;
console.log(files[0].type);
登入後複製

第2 步:提取MIME 類型

方法1:使用Blob(可以被文件欺騙擴充)

console.log(files[0].type);
登入後複製

方法2:標頭檢查(更可靠)

var fileReader = new FileReader();
fileReader.onloadend = function(e) {
  var header = (new Uint8Array(e.target.result)).subarray(0, 4).toString(16);
  switch (header) {
    case "89504e47":
      type = "image/png";
      break;
    case "47494638":
      type = "image/gif";
      break;
    case "ffd8ffe0":
    case "ffd8ffe1":
    case "ffd8ffe2":
      type = "image/jpeg";
      break;
    default:
      type = "unknown";
      break;
  }
};
fileReader.readAsArrayBuffer(files[0]);
登入後複製

注意:

    檔案副檔名可以偽造,因此頭檢查更可靠。
  • 幻數可能會因文件類型而異。
  • 伺服器端驗證對於安全性仍然至關重要。

以上是瀏覽器如何在文件上傳之前可靠地檢查 MIME 類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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