JAX-RS HTTP 多部分请求



如何在没有供应商特定库的情况下使用 JAX-RS 实现多部分/表单数据请求(文件上传)处理程序?到目前为止,除了注入HttpServletRequest并使用 Servlet API 访问表单数据之外,我还没有找到其他方法。

然而,即使请求格式良好(通过 Wireshark 确认),HttpServletRequest#getParts()也会返回一个空列表。我读到我必须在网络上为 Jersey Servlet 启用多部分配置.xml。但是,我正在使用@ApplicationPath注释来自动配置 JAX-RS。那么处理多部分请求的正确方法是什么?

这段代码可能会激发你的灵感

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) {
...
}    

相关内容

  • 没有找到相关文章

最新更新