JAX-RS HTTP多部分请求

3
如何在没有特定供应商库的情况下使用JAX-RS实现multipart/form-data请求(文件上传)处理程序?到目前为止,我还没有找到其他方法,除了注入HttpServletRequest并使用Servlet API访问表单数据。然而,即使请求格式正确(用Wireshark确认),HttpServletRequest#getParts()也会返回一个空列表。我读过我必须在web.xml中为Jersey Servlet启用多部分配置。但是,我正在使用@ApplicationPath注释自动配置JAX-RS。那么处理多部分请求的正确方法是什么?
1个回答

2
最初的回答:

这段代码可能会给你以启发

1) JAXRS 应用程序设置

import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.media.multipart.MultiPartFeature;


@ApplicationPath("demo") 
public class ApplicationConfig extends ResourceConfig {
   public ApplicationConfig() {
     packages("com.mycompany.demo").register(MultiPartFeature.class); // <= here!
   }
}

2) JAXRS服务

@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadImage(
    @FormDataParam("file") InputStream data,
    @FormDataParam("file") FormDataContentDisposition fileInfo) {
...
}    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接