Im使用nodejs和multer上传多个图像。Firsat检查目录是否存在。否则将创建。
错误:当文件夹不存在时,所有图像都通过了第一个条件fs.access,并给出消息";目录不存在"但是随后创建dir,使得第二图像得到错误";目录存在";。
var storage = multer.diskStorage({
destination: (req, file, cb) => {
const userId = encryptFolder(req.params["id"]);
const dtrToCreate = "C:/Users/User/Pictures/" + userId;
fs.access(dtrToCreate, (error) => {
if (error) {
console.log("Directory does not exist.", userId);
fs.mkdirSync(dtrToCreate, (error, data) => {
if (error) {
throw error;
}
cb(null, "C:/Users/User/Pictures/");
});
} else {
console.log("Directory exists.", userId);
cb(null, "C:/Users/User/Pictures/");
}
});
},
当目录存在时,成功上传图像。
工作解决方案:
由于有多个文件,所以每次文件通过时都应该有一个递归功能来检查文件夹是否存在。
fs.mkdirSync(dtrToCreate, { recursive: true })
return cb(null, dtrToCreate)