【问题标题】:Explicitly set Javascript files mimetype显式设置 Javascript 文件 mimetype
【发布时间】:2021-12-26 10:01:12
【问题描述】:


由于我对 React 还很陌生,需要帮助。

我遇到了一个用例,客户端在项目中上传一个 javascript 文件,但上传失败,因为不同的浏览器以不同的方式(在文件类型方面)查看相同的文件。

根据项目指南,仅允许将“应用程序/javascript”文件保存在数据库中。但是当用户从 chrome 上传文件时,它会显示为“text/javascript”并且上传失败。

现在客户端希望我们更新 javascript 文件的 mime-type,例如,如果 'text/javascript' 到达服务器,则将 mime-type 重写为 'application/javascript' 并保存文件。

甚至可以更改 JS 文件的 mime-type 吗?

如果是,非常感谢任何帮助。
解决此问题的理想方法是什么。

JS 文件,数据库支持。

[
  {
    "id": "aac491d22bcbb4a95deed88b738c1edc",
    "mimeType": "application/javascript",
    "extensions": [
      "js"
    ],
    "mediaTypeGroupId": "21f64da1e5792c8295b964d159a14491",
    "created": "2021-11-15T06:31:52.237Z",
    "updated": "2021-11-15T06:31:52.237Z",
    "self": "/mediatypes/aac491d22bcbb4a95deed88b738c1edc"
  }
]

客户希望我们这样做(只是示例代码,见谅)

if (file.files[0].type === "text/javascript") {
    const newType = file.files[0].type;
    newType = "application/javascript";
    console.log("yes", file.files[0].type);
  }

PS:使用的技术堆栈是 REACT、REDUX、LOOPBACK、POSTGRES。
谢谢。

【问题讨论】:

    标签: javascript postgresql react-redux loopbackjs file-type


    【解决方案1】:

    您可以使用以下方法重新创建 File 对象并覆盖类型。

    new File([file], file.name, {type: "application/javascript"});
    

    对于您的示例,您可以像这样使用它,您会看到唯一的变化是类型。

    if (file.files[i].type === "text/javascript") {
        file.files[i] = new File(file.files[i], file.files[i].name, {
            type: "application/javascript",
        });
    }
    

    【讨论】:

    • 谢谢你,@anotherglitchinthematri。我一定会为此努力的。但是更改文件类型是一个好习惯吗?
    • @SameerHuilgolkar 我强烈反对手动更改类型,即使自 2006 年以来建议使用“application/javascript”类型,“text/javascript”仍然有效,但这种分歧不是这里的问题,用户输入的验证是。由于 "text/javascript" 和 "application/javascript" 类型都有效,因此应允许上传这两种 mime 类型。您可以使用上面的解决方法,但这不是问题的真正解决方案,我建议您通知您的客户有关允许两种 mime 类型。
    • 谢谢@anotherglitchinthematrix,都注意到了。就连我也站在这一点上。我一定会调查的。
    猜你喜欢
    • 2019-01-03
    • 2013-03-15
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2020-02-27
    相关资源
    最近更新 更多