最近在做一个图片上传功能、在入参 body 中同时传入文件和其它基本信息结果出现如题异常、在此记录下解决办法、以做记录。
controller 代码如下:
1 @RequestMapping(value = "/upload", method =RequestMethod.POST)
2 @ResponseBody
3 public String upload(@RequestParam("file") MultipartFile file, @RequestBody User user) {
4 // 业务处理
5 ......
6 ......
7
8 }在使用工具测试(Postman、 swagger )时报如下异常
"timestamp": 1473349676109,
"status": 415,
"error": "Unsupported Media Type",
"exception": "org.springframework.web.HttpMediaTypeNotSupportedException",
"message": "Content type 'multipart/form-data;boundary=----WebKitFormBoundaryTVc9eDC2a2elulOx;charset=UTF-8' not supported",
"path": "/upload"解决方案:
去掉 @RequestBody 注解就行了
1 @RequestMapping(value = "/upload", method =RequestMethod.POST)
2 @ResponseBody
3 public String upload(@RequestParam("file") MultipartFile file, User user) {
4 // 业务处理
5 ......
6 ......
7
8 }原因: 使用在进行图片或者文件上传时 multipart/form-data 类型时、 数据会自动进行映射不要添加任何注解。此处解释不知道正确不、欢迎指正。
本文介绍了解决图片上传时遇到的415错误的方法。通过调整控制器代码,去除@RequestBody注解,实现了文件和其他基本信息的有效传递。


6266

被折叠的 条评论
为什么被折叠?



