处理图像(文件)发布请求和注释的多部分改造字符串和RequestBody需要哪些参数?
JAX-RS:
@POST
@Path("/user/image")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response addUserImage(?, ?) {}
改造2.0:
@Multipart
@POST("user/image")
Call<User> addUserImage(@Part("user") String userId, @Part("image") RequestBody image);
答案 0 :(得分:1)
对于文件,您可以使用File
,InputStream
或byte[]
。对于纯文本,只需使用String。您还需要使用@FormDataParam("<value>")
注释参数,其值为零件的名称。
@POST
@Path("/user/image")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response addUserImage(@FormDataParam("image") InputStream image,
@FormDataParam("image") FormDataContentDisposition imageDetail,
@FormDataParam("user") String user) {
}
您需要确保拥有多部分支持依赖项。不确定您使用的是哪个泽西岛版本,但这里适用于
泽西岛2.x
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>${jersey2.version}</version>
</dependency>
Jersey 1.x
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>${jersey1.version}</version>
</dependency>
使用Jersey 1.x,它应该可以在没有任何进一步配置的情况下解决问题。对于2.x,您需要注册MultiPartFeature
。如需帮助,请参阅this post