儘管伺服器端驗證很重要,但執行客戶端檢查可以防止不必要的伺服器資源消耗。雖然 MIME 類型通常是根據檔案副檔名確定的,但這種方法可能不可靠。您可以按照以下兩步驟流程在上傳前使用JavaScript 驗證MIME 類型:
從 取得檔案詳細資料元素如下所示:
var control = document.getElementById("your-files"); control.addEventListener("change", function(event) { var files = control.files, for (var i = 0; i < files.length; i++) { console.log("Filename: " + files[i].name); console.log("Type: " + files[i].type); console.log("Size: " + files[i].size + " bytes"); } }, false);
利用FileReader API 檢查檔案頭。
快速方法:直接從檔案擷取MIME類型blob:
console.log(blob.type);
可靠方法:分析原始檔案頭字節:
var fileReader = new FileReader(); fileReader.onloadend = function(e) { // code to obtain file header goes here }; fileReader.readAsArrayBuffer(blob);
比較標頭與已知簽名進行比較以確定實際的MIME類型。例如,JPEG 簽章可以是:
case "ffd8ffe0": case "ffd8ffe1": case "ffd8ffe2": type = "image/jpeg"; break;
最後,根據預期的 MIME 類型接受或拒絕檔案上傳。
注意: 認識到這一點至關重要即使文件被重新命名,也可以使用此技術建立其真正的 MIME 類型。
以上是上傳前如何在 JavaScript 中驗證檔案 MIME 類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!