我创建了一个 jersey restful web 服务,我设法使用作为方法签名上传多个文件@Context HttpServletRequest request
,效果很好。
问题是,要获取其他表单字段,我需要.isFormField();
使用 relative .getName();
for file or的方法反复检查.getFieldName();
,以及每次调用 Web 服务时.getString();
检查所需字段是否存在的方法,如果有的话,我认为这个过程不会很冗长且昂贵其他几个领域。
更简单的方法是使用@FormDataParam
web 服务用于暴露客户端需要传递的参数的位置,但问题是我无法一次上传多个文件。
因为如果 media type 或 enctype 是 . 它也不能request.getParameter("field1");
用于获取其他表单字段multipart/form-data
。
每当我尝试将两者结合@FormDataParam
在一起@Context HttpServletRequest request
时,它都会引发异常:使用类方法
org.apache.tomcat.util.http.fileupload.FileUploadException: Stream closed
解析请求时。 .parseRequest(request);
ServletFileUpload
@FormDataParam
请提出一些好的方法我怎样才能像在球衣中一样简单地获得所需的表单字段来实现多个文件上传。
多文件上传的方法:
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
@Path("/multipleFiles")
public String restDemo(@Context HttpServletRequest request)
{
//...code goes here
}
我的表格:
输出:(解析请求后)
field1 > abc
field2 > xyz
Chrysanthemum.jpg 大小: 879394
Desert.jpg 大小: 845941
绣球花.jpg 大小: 595284
Jellyfish.jpg 大小: 775702