【发布时间】:2022-01-08 17:56:44
【问题描述】:
这是我上传多个文件的 multer 代码。
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './public/files/'+ req.user.id)
},
filename: function (req, file, cb) {
x = file.originalname; //+path.extname(file.originalname);
cb(null,x);
}
});
var upload = multer({storage: storage});
这是在点击提交时提交文件的发布请求。
router.post(upload.array("FileUpload",12), function(req, res, next) {
//Here accessing the body datas.
})
所以我想要的是,我想首先使用生成的ID 的名称创建一个folder,可以从req.body 访问,然后将这些文件分别上传到该文件夹中。
但是由于我无法在上传之前先访问body,因此我无法创建相应的folder directory.。我能想到并实现它吗?
使用 fs-extra 包更新解决方案。
const multer = require('multer');
let fs = require('fs-extra');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
let Id = req.body.id;
fs.mkdirsSync('./public/files/'+ req.user.id + '/' + Id);
cb(null, './public/files/'+ req.user.id + '/' + Id)
},
filename: function (req, file, cb) {
x = file.originalname; //+path.extname(file.originalname);
cb(null,x);
}
});
var upload = multer({storage: storage});
这是在点击提交时提交文件的发布请求。
router.post(upload.array("FileUpload",12), function(req, res, next) {
//Here accessing the body datas.
})
【问题讨论】:
标签: node.js file-upload multer create-directory