我正在尝试使用 multer 仅上传带有 Node 的图像文件
文件上传成功:
app.use(multer({
dest: __dirname + '/public/uploads/',
onFileUploadData: function (file, data) {
console.log(data.length + ' of ' + file.fieldname + ' arrived');
},
onFileUploadComplete: function (file) {
console.log(file.fieldname + ' uploaded to ' + file.path);
}
}));
但我想将其限制为仅图像并添加一些用户身份验证(在下面的示例中尚未实现用户身份验证)。
当我启动包含 onFileUploadStart 的服务器时,它将记录到它上传的控制台,但是当我检查我的上传文件夹时,那里什么也没有。
app.use(multer({
dest: __dirname + '/public/uploads/',
onFileUploadStart: function (file) {
console.log(file.mimetype);
if (file.mimetype !== 'image/png' || file.mimetype !== 'image/jpg' || file.mimetype !== 'image/jpeg') {
return false;
} else {
console.log(file.fieldname + ' is starting ...');
}
},
onFileUploadData: function (file, data) {
console.log(data.length + ' of ' + file.fieldname + ' arrived');
},
onFileUploadComplete: function (file) {
console.log(file.fieldname + ' uploaded to ' + file.path);
}
}));
最佳答案
问题出在你的 bool 逻辑上。
这个:
if (file.mimetype !== 'image/png' || file.mimetype !== 'image/jpg' || file.mimetype !== 'image/jpeg')
应该是:
if (file.mimetype !== 'image/png' && file.mimetype !== 'image/jpg' && file.mimetype !== 'image/jpeg')
关于javascript - 当我在 onFileUploadStart() 中包含逻辑时,Multer 不上传文件 - NodeJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26702869/