【问题标题】:How to use Multer to upload a file in two different directories?如何使用 Multer 将文件上传到两个不同的目录?
【发布时间】:2021-05-24 09:15:19
【问题描述】:

我是使用 nodejs 和 multer 的新手,我想上传一张图片,但在两个不同的目录中。我尝试使用两个不同的中间件,但由于第一个 multer 函数返回一个文件目标,我无法使用它在另一个 multer 函数中上传。是否可以在两个不同的目录中使用 multer 上传文件?

【问题讨论】:

    标签: node.js express multer


    【解决方案1】:

    创建多个存储并同时调用它们。

    例子:

    const app = require("express")();
    const multer = require('multer');
    
    const storageA = multer.diskStorage({
      destination: function (req, file, cb) {
        cb(null, './storageA/');
      },
      filename: function (req, file, cb) {
        cb(null, file.originalname);
      }
    });
    
    const storageB = multer.diskStorage({
      destination: function (req, file, cb) {
        cb(null, './storageB/');
      },
      filename: function (req, file, cb) {
        cb(null, file.originalname);
      }
    });
    
    const destA = multer({ storage: storageA });
    const destB = multer({ storage: storageB });
    
    function fileUpload(req, res, next) {
      destA.single('file')(req, res, next);
      destB.single('file')(req, res, next);
    }
    
    app.post("/", fileUpload, (req, res) => {
      res.json({ file: req.file });
    });
    
    
    app.listen(3000, () => {
      console.log("Server started");
    });
    
    

    上传的文件将存储在./storageA./storageB中。

    这不是官方的方式,但我去试了一下,确实有效!

    【讨论】:

    • 感谢这适用于本地。现在我将尝试在 s3 和 google drive 上实现它!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    相关资源
    最近更新 更多