javascript - Multer Node.js 的文件上传 MIME 类型问题

标签 javascript node.js express sequelize.js multer

在我的项目中,我必须使用 Multer 上传一个 Photoshop 文件,但是当我输入 mime 类型的 photoshop、wave 和 mp3 文件时,我收到了这个错误:

Error: Mime type invalide
at DiskStorage.destination [as getDestination] (C:\Users\21653\Desktop\vagaBeats\back\src\midlleware\artworkImageUploader.js:14:21)
at DiskStorage._handleFile (C:\Users\21653\Desktop\vagaBeats\back\node_modules\multer\storage\disk.js:31:8)
at C:\Users\21653\Desktop\vagaBeats\back\node_modules\multer\lib\make-middleware.js:144:17
at allowAll (C:\Users\21653\Desktop\vagaBeats\back\node_modules\multer\index.js:8:3)
at wrappedFileFilter (C:\Users\21653\Desktop\vagaBeats\back\node_modules\multer\index.js:44:7)
at Busboy.<anonymous> (C:\Users\21653\Desktop\vagaBeats\back\node_modules\multer\lib\make-middleware.js:114:7)
at Busboy.emit (events.js:315:20)
at Busboy.emit (C:\Users\21653\Desktop\vagaBeats\back\node_modules\busboy\lib\main.js:38:33)
at PartStream.<anonymous> (C:\Users\21653\Desktop\vagaBeats\back\node_modules\busboy\lib\types\multipart.js:213:13)
at PartStream.emit (events.js:315:20)
这是我的代码:

const multer = require("multer");
const path = require('path');

const MIME_TYPE_MAP = {
    "image/png": "png",
    "image/jpeg": "jpg",
    "image/jpg": "jpg",
    "file/psd": "psd" // i got a problem with this MIME TYPE
};

const storage = multer.diskStorage({
    destination: (req, file, cb) => {
        const isValid = MIME_TYPE_MAP[file.mimetype];
        let error = new Error("Mime type invalide");
        if (isValid) {
            error = null;
        }
        cb(error, path.join(__dirname, '../../', 'images/artworkImages'));
    },
    filename: (req, file, cb) => {
        const name = file.originalname
            .toLowerCase()
            .split(" ")
            .join("-");
        console.log(file)
        const ext = MIME_TYPE_MAP[file.mimetype];
        cb(null, name + "-" + Date.now() + "." + ext);
    }
});

module.exports = multer({ storage: storage }).fields([
{ name: "Image"},
{name:"untagedartwork"},
{name:"psd_file"} //this is the file that i want to upload it to the server
]);

你能帮我解决这个问题吗

最佳答案

尝试将 file/psd 更改为其中的一些(第一个应该可以):

image/vnd.adobe.photoshop

application/x-photoshop

application/photoshop

application/psd

image/psd

关于javascript - Multer Node.js 的文件上传 MIME 类型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67326727/

相关文章:

javascript - 函数调用方法说明

node.js - Elasticsearch:更像是对多种索引类型的查询

node.js - Passport 本地类型错误

node.js - MongoDB/Node-检查集合中的文档是否具有特定字段

javascript - Mongoose MongoDB : LIKE operator in search

javascript - 如何在所有现代浏览器中检测页面缩放级别?

javascript - 在 ngFor 循环中添加类

javascript - 动态 onclick 在 chrome 中不起作用

node.js - 应用程序构建因 native react 异常而失败,评估脚本时出现问题

node.js - 如何在环回中包含与远程方法结果的关系?