显式设置 Javascript 文件 mimetype
Explicitly set Javascript files mimetype
由于我是 React 的新手,需要帮助。
我遇到过一个用例,客户端在项目中上传了一个javascript文件,但是上传失败,因为不同的浏览器以不同的方式(在文件类型方面)看到同一个文件。
根据项目指南,数据库中只允许保存 'application/javascript' 个文件。但是当用户从 chrome 上传文件时,它显示为 'text/javascript' 并且上传失败。
现在客户端要我们更新javascript个文件的mime-type,例如,如果'text/javascript'来到服务器,重写mime-type为'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。
谢谢。
您可以重新创建文件对象并使用以下方法覆盖类型。
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",
});
}
由于我是 React 的新手,需要帮助。
我遇到过一个用例,客户端在项目中上传了一个javascript文件,但是上传失败,因为不同的浏览器以不同的方式(在文件类型方面)看到同一个文件。
根据项目指南,数据库中只允许保存 'application/javascript' 个文件。但是当用户从 chrome 上传文件时,它显示为 'text/javascript' 并且上传失败。
现在客户端要我们更新javascript个文件的mime-type,例如,如果'text/javascript'来到服务器,重写mime-type为'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。
谢谢。
您可以重新创建文件对象并使用以下方法覆盖类型。
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",
});
}