问题:
使用Spring Boot文件上传时出错, 错误信息:
multipart/form-data;boundary=----WebKitFormBoundaryRAYPKeHKTYSNdzc1;charset=UTF-8' not supported
发生场景:
上传文件时, 通过Form Submit 传递参数, 参数类型包括String 类型和文件类型, 在Spring中的参数自动匹配使用如下:
upload(@RequestParam("files") MultipartFile[] files, @RequestBody
Map<String, String> params) {
原因及解析:
Spring Boot 在解析参数时:
- @RequestParam: 一般格式参数(包括Form表单或是直接接在URL后面的参数)
- @RequestBody
: JSON格式参数
混用两种方式,会导致Spring Boot无法正确解析。
解决方法:
使用@RequestParam 或是不使用,正确代码:
upload(@RequestParam("files") MultipartFile[] files,@RequestParam
Map<String, String> params)