1 回答
TA贡献1866条经验 获得超5个赞
如果你想在控制器中使用multer它,你只能在路由中使用函数和对象,而不是在控制器中,你必须在控制器中编写存储和上传函数,这里我使用了错误multer处理并且我正在上传多个图像
Documents: async (req, res) => {
if (!req.headers.room_id) {
logger.warn(error.MANDATORY_FIELDS);
return res.status(500).send(error.MANDATORY_FIELDS)
}
try {
let storage = multer.diskStorage({
destination: function (req, file, cb) {
let id = req.headers.room_id;
let path = `tmp/daily_gasoline_report/${id}`;
fsextra.mkdirsSync(path);
cb(null, path);
},
filename: function (req, file, cb) {
// console.log(file);
let extArray = file.mimetype.split("/");
let extension = extArray[extArray.length - 1];
cb(null, file.fieldname + '-' + Date.now() + "." + extension);
}
})
var upload = multer({ storage: storage }).array('images', 100);
upload(req, res, function (err) {
if (err) {
console.log(err);
return res.end("Error uploading file.");
} else {
res.end("File has been uploaded");
}
});
let result = error.OK
logger.info(result);
return res.status(200).send(result)
} catch (err) {
logger.warn(err);
console.log(err);
return res.status(500).send(error.SERVER_ERROR)
}
}
TA贡献1871条经验 获得超13个赞
你有解析器吗?你如何解析数据?你需要使用一些东西来为你提供这样的数据: https: //www.npmjs.com/package/express-fileupload
这个包帮助你解析表单数据和文件数据本身。
添加回答
举报