尽管服务器端验证很重要,但执行客户端检查可以防止不必要的服务器资源消耗。虽然 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中文网其他相关文章!