Играю с загрузкой файлов в Node.js / Multer.
У меня работает хранилище и лимиты. Но теперь я играю с файловым фильтром, чтобы просто запретить некоторые файлы 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");
}
)}
)}