如何使用 Multer 上传两个不同目录中的文件?

How to use Multer to upload a file in two different directories?

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

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

示例:

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中。

这不是官方方法,但我试了一下,有效!