我正在使用nodejs和multer将图像文件上传到数字海洋上的后端服务器。当我在localhost上进行测试时,一切正常。一旦我在服务器上进行了测试,它就可以工作,并且multer不会返回任何错误。
但是,上载的图像只是一个1kb的图像文件,当请求时会被用作损坏的图像。确切的代码可在我的本地系统上工作并提供正确的图像。
我尝试使用express-fileupload,但仍然遇到相同的问题。 尝试下载该文件并在我的本地系统上查看,但结果显示该文件无效,确认该图片实际上未正确上传
const upload = multer({}).single('avatar')
upload(req, res, (error) => {
if (error) {
return sendErr(res, error)
}
const image = req.files.avatar
const x = image.name.split('.')
const ext = x[x.length - 1]
const file = `${new Date().getTime()}.${ext}`
const rename = `./public/profile/${file}`
image.mv(rename, (err) => {
req.Models.User.findById({ _id: req.user._id }, (e, user) => {
if (!e || user !== null) {
if (fs.existsSync(`./public${user.avatar}`)) {
fs.unlink(`./public${user.avatar}`, (exc) => {
if (exc) {
req.log(exc)
}
})
}
user.avatar = `/profile/${file}`
user.save()
return sendRes(res, user.toObject(), 200)
}
})
})
})