显式设置Javascript文件mimetype




由于我是React的新手,需要帮助。

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

根据项目指南,数据库中只允许保存"application/javascript"文件。但当用户从chrome上传文件时,它会给出"text/javascript",上传失败。

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

是否可以更改JS文件mime类型

如果是,我们将非常感谢您的帮助
解决此问题的理想方法是什么

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
谢谢。

您可以使用下面的方法重新创建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",
});
}

最新更新