我有一个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个其他参数(其中一个是多选选项),因此我不想逐个处理它们作为方法参数。有没有什么办法可以让我在其中查询所有其他参数?
答案 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) {
.... ....}
它完美无缺