node.js - 使用 express 中的multer上传文件, 上传的文件没有后缀名如何解决?
本文介绍了node.js - 使用 express 中的multer上传文件, 上传的文件没有后缀名如何解决?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
使用 express 中的multer上传文件, 上传的文件没有后缀名
var uploadZoneFile = upload.fields([{
name: 'uploadLittleimg',
maxCount: 1
}, {
name: 'uploadImg',
maxCount: 1
}, {
name: 'uploadVoice',
maxCount: 1
}]);
router.post('/addZone', uploadZoneFile, function(req, res, next){
console.log(req.files)
var _uploadLittleimg = req.files.uploadLittleimg;
var _uploadImg = req.files.uploadImg;
var _uploadVoice = req.files.uploadVoice;
if(_uploadLittleimg) req.body.littleimg = "/uploads/" + _uploadLittleimg[0].filename;
if(_uploadImg) req.body.img = "/uploads/" + _uploadImg[0].filename;
if(_uploadVoice) req.body.voice = "/uploads/" + _uploadVoice[0].filename;
next();
}
...
其中有 filename 和 mimetype, 如何把文件后缀名加上去?
去官网看了没有参数做这种操作,
看源码我也很费力, 我还是新手, 求大神指点 谢谢
解决方案
那你就不能再用upload.fields
了,你得用diskStorage
,代码类似:
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/uploads');
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '.自己在这配置后缀名吧');
}
})
var upload = multer({ storage: storage })
router.post('/addZone', upload, function(req, res, next){
console.log(req.files)
var _uploadLittleimg = req.files.uploadLittleimg;
var _uploadImg = req.files.uploadImg;
var _uploadVoice = req.files.uploadVoice;
if(_uploadLittleimg) req.body.littleimg = "/uploads/" + _uploadLittleimg[0].filename;
if(_uploadImg) req.body.img = "/uploads/" + _uploadImg[0].filename;
if(_uploadVoice) req.body.voice = "/uploads/" + _uploadVoice[0].filename;
next();
}
这篇关于node.js - 使用 express 中的multer上传文件, 上传的文件没有后缀名如何解决?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文