如何使用 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
中。
这不是官方方法,但我试了一下,有效!
我是 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
中。
这不是官方方法,但我试了一下,有效!