【发布时间】:2020-06-30 00:02:52
【问题描述】:
有没有办法在多选上传期间使用 multer 将多个文件上传到一个唯一文件夹?
例如,单次上传 = [file1,file2,file3],它们会保存到 dir_1。 目前,我将 [file1,file2,file3] 映射到每个文件的文件夹中。目标只是将上传/发布请求中的每个文件存储在按上传时间标记的目录中。
这是我迄今为止一直在尝试的。但是我的代码为多选的每次上传生成一个唯一的文件夹。无法真正弄清楚我应该在哪里生成这些文件夹。我应该在发布请求中创建文件夹吗?
const storageConfig = multer.diskStorage({
destination: (req, file, cb) => {
let path = './storage/' + String(Date.now());
fs.mkdirSync(path);
cb(null, path);
},
filename: (req, file, cb) => cb(null, Date.now() + path.extname(file.originalname))
});
var upload = multer({
storage: storageConfig
}).array('files')
app.post('/api/upload', (req, res, next) => {
upload(req, res, function (err) {
// Handle errors in post request
if (err instanceof multer.MulterError) {
console.log(String(err).split('\n')[0])
} else {
const files = req.files
console.log("Recieved uploaded file", files)
return res.json({
files: files,
}
)
}
})
})
感谢您提供任何指导或提示。
【问题讨论】:
-
所以目标是根据当前日期创建 1 个目录并将所有图像(来自单个批处理请求)存储到同一个目录中?
-
@user9879287 是的,就是这样
标签: javascript node.js multer