【问题标题】:Handling upload of multiple different files with Node and Multer使用 Node 和 Multer 处理多个不同文件的上传
【发布时间】:2018-09-04 01:52:33
【问题描述】:

我一直在尝试使用 Multer 上传两个不同的文件(图像和 pdf),但我不知道如何操作 fileFilter 中的文件。我想检查文件类型和大小 - 是否有效,然后获取 pdf 文件并将其存储在磁盘上,同时图像文件继续处理图像处理的另一个函数。 我是新手,尝试了很多指南,但没有一个显示这种情况。

提前感谢您的帮助。

Multer 和路由器的代码。还是有点粗糙,请多多包涵。

// multer configuration
const upload = multer({
  storage: multer.memoryStorage(),

  fileFilter (req, files, callback) {
    const ext = path.extname(files.originalname);
    if (ext !== '.png' && ext !== '.jpg' && ext !== '.jpeg' && ext !== '.pdf') {
      return callback(new Error('Only images and pdf files allowed'));
    }
    callback(null, true);
  },
  limits: {
    fileSize: 5242880,
  }

  }).fields([{ name: 'main image', maxCount: 1 }, { name: 'info packs', maxCount: 1 }]);

// router
router.post('/', upload, controller.addNewImage);enter code here

【问题讨论】:

    标签: javascript node.js multer


    【解决方案1】:

    我觉得还可以:

    const upload = multer({
      storage: multer.memoryStorage(),
    
      fileFilter (req, files, callback) {
        const ext = path.extname(files.originalname);
        const allowed = ['.png', '.jpg', '.jpeg', '.pdf'];
        if (allowed.includes(ext)) {
          callback(null, true);
        } else {
          callback(null, false); // handle error in middleware, not here
        }
      },
      limits: {
        fileSize: 5242880,
      }
    
      }).fields([{ name: 'main image', maxCount: 1 }, { name: 'info packs', maxCount: 1 }]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-12
      • 1970-01-01
      • 2021-04-09
      • 2018-09-16
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 2018-03-31
      相关资源
      最近更新 更多