多部分/表单数据文件上传+泽西岛

时间:2016-07-13 08:21:19

标签: java jersey multipartform-data

我有一个Web表单,其中包含文件上载选项和许多其他输入参数。我正在寻找一种方法来处理这个问题,使用Jersey请求处理程序,其中方法参数是文件输入,"所有其他参数"。

This question解释说我无法将其他参数导入自定义模型对象,因为浏览器将它们作为单独的多部分对象发送。我尝试的下一件事是检索MultivaluedMap中的其他参数:

@POST
@Produces("text/html; charset=\"UTF-8\"")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Page handlePost(@FormDataParam("icon") InputStream iconInputStream,
        @FormDataParam("icon") FormDataContentDisposition iconContentDispositionHeader,
        MultivaluedMap<String, String> formParams) {
    ...
}

不幸的是,这也不起作用。

表单中还有大约20个其他参数(其中一个是多选选项),因此我不想逐个处理它们作为方法参数。有没有什么办法可以让我在其中查询所有其他参数?

1 个答案:

答案 0 :(得分:0)

保罗建议的是正确的方向。我刚刚完成了一个RESTful服务:

@POST
@Path("fileupload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public Response uploadFile(@FormDataParam("component") String system, @FormDataParam("purpose") String purpose,  @FormDataParam("file") InputStream uploadedInputStream,
        @FormDataParam("file") FormDataContentDisposition fileDetail) {

....  ....}

它完美无缺