首页 > web前端 > js教程 > 上传前如何在 JavaScript 中验证文件 MIME 类型?

上传前如何在 JavaScript 中验证文件 MIME 类型?

DDD
发布: 2024-12-01 17:21:11
原创
807 人浏览过

How Can I Verify File MIME Types in JavaScript Before Uploading?

上传前如何用 JavaScript 检查文件 MIME 类型?

可能的解决方案

尽管服务器端验证很重要,但执行客户端检查可以防止不必要的服务器资源消耗。虽然 MIME 类型通常是根据文件扩展名确定的,但这种方法可能不可靠。您可以按照以下两步流程在上传前使用 JavaScript 验证 MIME 类型:

第 1 步:检索文件信息

获取文件详细信息元素如下所示:

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);
登录后复制

第 2 步:检查文件头

利用 FileReader API 检查文件头。

  1. 快速方法:直接从文件中检索MIME类型blob:

    console.log(blob.type);
    登录后复制
  2. 可靠方法:分析原始文件头字节:

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板