【发布时间】:2021-06-03 08:41:12
【问题描述】:
我正在使用 multer 包从前端 (ReactJS) 接收多个图像。我正在发送附加到基本字段的图像数组,我想使用 node.js 将它们保存在我的 Rest API 服务器中。 我正在接收我的身体字段,但问题是没有收到图像。这是我的代码:
const multer = require('multer');
const storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, './uploads/');
},
filename: function(req, file, cb) {
cb(null, new Date().toISOString() + file.originalname);
}
});
const fileFilter = (req, file, cb) => {
if(file.mimetype === 'image/jpeg' || file.mimetype === 'image/png'){
cb(null, true);
} else {
cb(new Error('worng file format'), true);
}
}
// initialize multer
const upload = multer(
{
storage: storage,
fileFilter: fileFilter,
}
);
router.get('/', categoryController.getCategories);
router.post('/', upload.array('images', 3), (req, res, next) => {
try {
// here I want the images to save their location
console.log(req.files);
const name = req.body.name;
const description = req.body.description;
} catch (err) {
}
});
我的图片应该在的文件夹upload 是空的;
那么,如何保存我的多张图片?
【问题讨论】:
-
我看不出有什么奇怪的。
console.log(req.files)打印什么? -
@MaximOrlov 它打印一个空数组。像这样的“[]”
-
文件是否可能被文件过滤功能拒绝?如果你 console.log
file在函数的顶部,首先你会得到什么? -
fileFilter 函数由于某种原因对我不起作用。我试图放置一个console.log并进行调试,但该功能可能没有触发@MaximOrlov
-
文件似乎没有正确通过后端。认为它可能是前端的东西。您可以尝试改用
formData.append('image', selectedFiles[0]); formData.append('image', selectedFiles[1]); ...并分别附加每个文件吗?
标签: javascript node.js rest express multer