【发布时间】:2018-11-08 21:20:23
【问题描述】:
我正在发送帖子请求/product/create 一些价值和图像。
如果我在
之前控制每个值upload(req, res, (err) => {})
它在没有图像信息的情况下正常显示。
如果我收到upload(req, res, (err) => {})之后的值
没有显示任何值。
完整的发布请求代码:
app.post('/product/create', (req, res) => {
let filename;
upload(req, res, (err) => {
if(err){
res.render('index', {
msg: err
});
} else {
if(req.file == undefined){
res.render('index', {
msg: 'Error: No File Selected!'
});
} else {
res.render('index', {
msg: 'File Uploaded!',
filename = req.file.filename;
});
}
}
});
const product = {
title : req.body.title,
desc : req.body.desc,
image : filename,
}
});
配置 Multer:
const storage = multer.diskStorage({
destination: './public/uploads/',
filename: function(req, file, cb){
cb(null,file.fieldname + '-' + Date.now() + path.extname(file.originalname));
}
});
const upload = multer({
storage: storage,
limits:{fileSize: 1000000},
fileFilter: function(req, file, cb){
checkFileType(file, cb);
}
}).single('myImage');
function checkFileType(file, cb){
const filetypes = /jpeg|jpg|png|gif/;
const extname = filetypes.test(path.extname(file.originalname).toLowerCase());
const mimetype = filetypes.test(file.mimetype);
if(mimetype && extname){
return cb(null,true);
} else {
cb('Error: Images Only!');
}
}
【问题讨论】:
-
什么是上传的客户端代码,需要在请求时创建formData。
-
也分享你的 multer 配置代码
-
如果我控制图像名称,mimetype 以正确上传其显示,但是当尝试从上传 (req, res) 中获取图像值和其他值时,它没有任何价值。 >>>虽然我正在分享上传代码..查看更新
标签: node.js express multer body-parser