使用antd的upload组件上传到后端(使用node的multer),为什么会报Boundary not found?

恳求大佬帮忙看下,我前端使用的是upload组件上传图片,后端配合node的multer接收,但是图片上传之后的报错如下图
image.png
前端代码如下

 <Upload
     showUploadList={false}
     action='/api/users/update-avatar'
     className='upload-avatar'
     headers={{
        'Content-Type': 'multipart/form-data',
      }}
  >
       <EditOutlined className='edit-logo' />
  </Upload>

nodejs代码如下

var express = require('express')
var router = express.Router()
const userController = require('../controllers/users')
const multer = require('multer')

const upload = multer({ dest: 'public/avatars/' })

router.post('/update-avatar',
  upload.single('avatar'),
  userController.updateAvatar
)

module.exports = router

至于userController.updateAvatar 我理解根本没走到这里就报错了
传参页面是这样的
image.png

看到网上有一种解决方法是吧header去掉,但是去掉headers之后会进一步报下面的错
image.png
传参页面就成了这种
image.png

阅读 2.4k
2 个回答
为什么会报Boundary not found?

上传文件不要手动设置'Content-Type': 'multipart/form-data'。原因可参考利用fetch上传文件

看到网上有一种解决方法是吧header去掉,但是去掉headers之后会进一步报下面的错

upload.single('avatar')的参数和请求FormData中file表单的name不一致。试试这样:

<Upload
  name="avatar"
  showUploadList={false}
  action='/api/users/update-avatar'
  className='upload-avatar'
>
  <EditOutlined className='edit-logo' />
</Upload>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题