Multer - 无法读取未定义的 属性 "path"
Multer - Cannot Read Property "path" of Undefined
我正在尝试使用 multer 将单张图片上传到 mongo,但我在尝试访问图片路径时不断收到此错误:
TypeError: Cannot read property 'path' of undefined
at router.post (D:\Workspace\AdminBootstrap\routes\admin_index.js:74:29)
这是我上传图片的代码:
router.post('/add-category', uploads.single('category_image'), (req, res) => {
let title = req.body.title;
console.log('Category Title:\t' + title);
let slug = title.replace(/\s+/g, '-').toLowerCase();
let catImage = req.file.path; // error occurs here
console.log(catImage);
let category = new Category({
title: title,
slug: slug,
image: catImage
});
category.save()
.then(result => {
if (result) {
console.log('Saved Category:\t' + result);
res.redirect('/admin/home');
}
})
.catch(errors => {
console.error('Error Saving Category:\t' + errors);
});
});
这是我的模板:
<label>Upload Image</label>
<input name="category_image" class="form-control" type="file" accept="image/*" id="selImg" onchange="showImage.call(this)">
<img src="#" id="imgPreview" style="display: none; height: 100px; width: 100px">
任何人都可以向我解释为什么路径会抛出错误吗?
路径抛出错误,因为 "file" 未在 "req" object 中定义。
大概是在"req.body"object中定义的。使用
console.log(req.body)
确认。
由于标题是在 "req.body" 上定义的,因此 "file.path" 也应该在相同的 object.
上定义
在设置您的 HTML 时,您的表单应该有一个属性
enctype="multipart/form-data"
这会将您的文件保存在路径变量
中
我正在尝试使用 multer 将单张图片上传到 mongo,但我在尝试访问图片路径时不断收到此错误:
TypeError: Cannot read property 'path' of undefined
at router.post (D:\Workspace\AdminBootstrap\routes\admin_index.js:74:29)
这是我上传图片的代码:
router.post('/add-category', uploads.single('category_image'), (req, res) => {
let title = req.body.title;
console.log('Category Title:\t' + title);
let slug = title.replace(/\s+/g, '-').toLowerCase();
let catImage = req.file.path; // error occurs here
console.log(catImage);
let category = new Category({
title: title,
slug: slug,
image: catImage
});
category.save()
.then(result => {
if (result) {
console.log('Saved Category:\t' + result);
res.redirect('/admin/home');
}
})
.catch(errors => {
console.error('Error Saving Category:\t' + errors);
});
});
这是我的模板:
<label>Upload Image</label>
<input name="category_image" class="form-control" type="file" accept="image/*" id="selImg" onchange="showImage.call(this)">
<img src="#" id="imgPreview" style="display: none; height: 100px; width: 100px">
任何人都可以向我解释为什么路径会抛出错误吗?
路径抛出错误,因为 "file" 未在 "req" object 中定义。 大概是在"req.body"object中定义的。使用
console.log(req.body)
确认。 由于标题是在 "req.body" 上定义的,因此 "file.path" 也应该在相同的 object.
上定义在设置您的 HTML 时,您的表单应该有一个属性
enctype="multipart/form-data"
这会将您的文件保存在路径变量