java – Spring启动Multipart文件上传作为json正文的一部分

我想知道是否有可能接受包含多部分文件以及其他数据的json有效负载的后端点.例如我的身体对象看起来像:

public class Bio {
    private Long id;
    private String firstName;
    private MultipartFile imageFile;
}

一个单独但相关的问题是,在springboot doc示例中,用于上传文件https://spring.io/guides/gs/uploading-files/,该文件是请求路径的一部分而不是有效负载.这对我来说很奇怪所以有没有办法让文件绑定到请求体?

最佳答案
我过去这样做的方法是上传两个单独的部分,一个用于文件,另一个用于随附的JSON.你的控制器方法看起来像这样:

public void create(@RequestPart("foo") Foo foo,
        @RequestPart("image") MultipartFile image)
    // …
}

然后它将使用如下所示的请求:

Content-Type: multipart/mixed; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name="foo"
Content-Type: application/json;charset=UTF-8
{"a":"alpha","b":"bravo"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name="image"; filename="foo.png"
Content-Type: application/octet-stream
Content-Length: 734003
<binary data>
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

转载注明原文:java – Spring启动Multipart文件上传作为json正文的一部分 - 代码日志