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中文网其他相关文章!