使用multer和节点上载的图像在服务器上另存为无效的1kb文件

时间:2019-02-17 12:52:16

标签: node.js digital-ocean multer

我正在使用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)
      }
    })
  })
})

0 个答案:

没有答案