我试图在Multer处理上传文件计数。我的功能如下:
export const upload = multer({
storage: storage,
fileFilter: (req, file, callback) =>
Table.findOne({'user': req.user._id})
.then(table => {
if (req.params.type === 'gallery' && table.gallery.length + req.files.length > 10) {
req.tooManyGalleryImages = true
return callback(null, false, new Error())
}
callback(null, true)
}),
limits: {
fileSize: 2000000
}
})
我需要req.files.length但是例如,如果我上传三个文件,它会使用一个元素数组返回req.files三次。也许还有其他功能我可以在上传前比较文件数吗?
答案 0 :(得分:1)
我认为你可以做的是利用multer支持的maxCount。
var upload = multer({...}).array('photos', maxCount) //maxCount should be whatever limit you want
upload(req, res, function (err) {
if (err) {
// Error due to maxCount will come here
return
}
// Your code
}