使用 express 中的multer上传文件, 上传的文件没有后缀名如何解决?

发布于 2022-09-02 20:17:11 字数 1438 浏览 21 评论 0

使用 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();

}
...

clipboard.png

clipboard.png

其中有 filename 和 mimetype, 如何把文件后缀名加上去?
去官网看了没有参数做这种操作,
看源码我也很费力, 我还是新手, 求大神指点 谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ˇ宁静的妩媚 2022-09-09 20:17:11

那你就不能再用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();

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文