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

标签 javascript node.js image file-upload multer

我正在尝试使用 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/

相关文章:

javascript - 在弹出窗口中隐藏网址

javascript - Node.js Knex SQL 插入太慢

javascript - 如何计算 JS 数组中组的平均值?

php - 通过PHP在MySQL中插入Jquery

javascript - 来自 API 的 node.js pg-promise 和分页

node.js - 在node.js中捕获请求url

image - 在 MATLAB 中使用 imshow 方法显示图像标题

javascript - 使用 mix 将 jquery stellar 插件添加到 laravel 5.4 项目

bash - "Reading"ffmpeg录制过程中的屏幕

python - 从谷歌应用程序引擎ndb获取图像