原文:https://www.cnblogs.com/yueli/p/7552888.html
最近同事在做一個圖片上傳功能、在入參 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 類型時、 數據會自動進行映射不要添加任何注解。此處解釋不知道正確不、歡迎指正。