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中文網其他相關文章!