当我在onFileUploadStart()-NodeJs中包含逻辑时,Multer没有上传文件

Multer not uploading files when I include logic in onFileUploadStart() - NodeJs

本文关键字:Multer 文件 包含逻 onFileUploadStart -NodeJs      更新时间:2023-09-26

我正试图使用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);
  }
}));

问题出在布尔逻辑上。

此:

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')