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
這個包幫助你解析表單數據和文件數據本身。
添加回答
舉報