【发布时间】:2016-05-05 03:42:50
【问题描述】:
我正在玩 Node.js/Multer 中的文件上传。
我得到了存储和限制的工作。但现在我正在玩 filefilter 来简单地拒绝 mimetype 的一些文件,如下所示:
fileFilter: function (req, file, cb) {
if (file.mimetype !== 'image/png') {
return cb(null, false, new Error('goes wrong on the mimetype'));
}
cb(null, true);
}
当上传一个不是 PNG 的文件时,它不会接受它。
但它也不会触发if(err)
当文件太大时,它确实会产生错误。所以不知何故我也需要在filefilter 上生成一个错误,但我不确定如何猜测new Error 是错误的。
那么,如果文件不正确,我应该如何生成错误?我做错了什么?
完整代码:
var maxSize = 1 * 1000 * 1000;
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, 'public/upload');
},
filename: function (req, file, callback) {
callback(null, file.originalname);
}
});
var upload = multer({
storage : storage,
limits: { fileSize: maxSize },
fileFilter: function (req, file, cb) {
if (file.mimetype !== 'image/png') {
return cb(null, false, new Error('I don\'t have a clue!'));
}
cb(null, true);
}
}).single('bestand');
router.post('/upload',function(req,res){
upload(req,res,function(err) {
if(err) {
return res.end("some error");
}
)}
)}
【问题讨论】:
-
我正在寻找这个 multer({storage, filteFilter...}) 谢谢。