【问题标题】:fileFilter on multer still allowing all file typesmulter 上的 fileFilter 仍然允许所有文件类型
【发布时间】:2020-11-29 18:51:16
【问题描述】:

在我的存储功能中添加了一个文件过滤器,只允许上传图像文件类型,但所有文件类型仍在上传中。

var storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, 'uploads/profilePictures')
    },
    filename: function (req, file, cb) {
        cb(null, `${Date.now()}_${file.originalname}`)
    },
    fileFilter: (req, file, cb) => {
        const ext = path.extname(file.originalname).toLower()
        if (ext !== '.jpg' || ext !=='.png' || ext !== '.jpeg') {
            return cb(res.status(400).end('Error only photos can be uploaded'), false);
        }
        cb(null,true)
    }
})

var upload = multer({ storage: storage }).single("file")

【问题讨论】:

标签: node.js express multer filefilter


【解决方案1】:

这是一种使用正则表达式的方法:

fileFilter: (req, file, cb) => {
    const filetypes = /jpeg|jpg|png|gif/;
    const extname = filetypes.test(path.extname(file.originalname).toLowerCase());
    const mimetype = filetypes.test(file.mimetype);
    
    if (mimetype && extname) return cb(null, true);
    else cb("Error: Images Only!");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多