原因
由于使用multer处理上传图片时,multer存储的是重命名的文件,文件并没有后缀名导致文件无法在服务器直接打开,手动加上后缀名就能打开文件。
如:
解决方法
引入fs模块将文件重命名存储即可,以下用单文件上传为例:
const fs=require('fs')
router.post('/imageUpload',upload.single('avatar'),function (req, res) {
console.log(req.file)
//获取文件后缀名
var appendName=req.file.originalname.split('.')[1]
//fs重命名文件,第一个参数为上传文件绝对路径,第二个参数为相对路径
//第三个参数可选
fs.rename(req.file.path,`tmp/uploads/${req.file.filename}.${appendName}`,function (err) {
if (err) throw err
})
res.json({msg:'success'})
})
###参考博客