如果用户validation失败,请停止在multer中上传文件

上传文件是通过使用此代码的multer完成的,但是如何在用户validation失败时停止file upload。 在这里编写用户validation部分的代码

router.post('/profilePicture', multer({dest: './uploads/', rename: function (fieldname, filename,req,res) { return image = req.body.userId+'-'+dateTime+'-'+randomId(); }, onFileUploadStart: function (file,req,res) { if(file.mimetype !== 'image/jpg' && file.mimetype !== 'image/jpeg' && file.mimetype !== 'image/png') { imageUploadDone = false; return false; } //console.log(file.originalname + ' is starting ...'); }, onFileUploadComplete: function (file,req,res) { //console.log(file.fieldname + ' uploaded to ' + file.path); if(file.mimetype == 'image/jpg') extn = '.jpg'; if(file.mimetype == 'image/jpeg') extn = '.jpeg'; if(file.mimetype == 'image/png') extn = '.png'; imageUploadDone=true; } }),function(req, res) { upload(req,res,function(err) { if(imageUploadDone==true){ //console.log(image); var userInfo = {'userId':req.body.userId,'newImage':address+image+extn,'path':'./uploads/'}; db.profilePicture(userInfo,function(result){ if(result.message == 'image path added'){ res.json({'success':'1','result':{'message':'Profile Picture Updated','imageUrl':address+image+extn},'error':'No Error'}); } }); } if(imageUploadDone == false){ res.json({'success':'0','result':{},'error':'file format is not supported'}); } }); }); 

我尝试validation用户onFileUploadStart和onFileUploadComplete事件。 如果用户仍然无效,文件将被上传到path中。

这现在可以在1.0.0。

如果你想中止上传:

 multer({ fileFilter: function (req, file, cb) { if (path.extension(file.originalname) !== '.pdf') { return cb(new Error('Only pdfs are allowed')) } cb(null, true) } }) 

如果您想跳过任何不是pdf的文件:

 multer({ fileFilter: function (req, file, cb) { if (path.extension(file.originalname) !== '.pdf') { return cb(null, false) } cb(null, true) } })