Java Spring: 不支持内容类型 'multipart/form-data;boundary ;charset=UTF-8'

Java Spring: Content type 'multipart/form-data;boundary ;charset=UTF-8' not supported

我已经创建了一个控制器:

@RequestMapping(value = "/photo/" , method = RequestMethod.POST)
public @ResponseBody
void addPhotoData(@RequestBody Photo photo, @RequestParam("data")
        MultipartFile photoData) {

    InputStream in = null;
    try {
        in = photoData.getInputStream();
        photoService.save(photo, in);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

我用 Postman 发送请求:

我不明白为什么我收到错误 415 不受支持。 求助!

这称为多部分混合类型。尝试像这样更改您的签名

@RequestMapping(value = "/photo/" , method = RequestMethod.POST, consumes = {"multipart/mixed"})
public @ResponseBody void addPhotoData(@RequestPart Photo photo, @RequestPart("data")
        MultipartFile photoData) {

尝试将请求主体包装到一个对象中。

 public class Payload {
   private String name;
   private String url;
   private MultipartFile data;
...
}

添加consumes = { "multipart/form-data" }

@RequestMapping(value = "/photo/" , method = RequestMethod.POST, consumes = { "multipart/form-data" })
public @ResponseBody void addPhotoData(@ModelAttribute Payload payload) {
...

}

还有 MediaType.MULTIPART_FORM_DATA_VALUE 常量而不是使用那个字符串