使用resteasy处理multipart / form-data请求时,如何控制最大文件大小和/或最大请求大小?
我的代码如下所示:
@POST
@Path("/somerestresource")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response handleForm(@MultipartForm MyForm form) {
...
}
使用Servlet,我可以使用@MultipartConfig
注释控制内容。
所以我考虑绕过resteasy并使用@Context
注入HttpServletRequest
并在web.xml中配置我的servlet,但我不确定副作用。
答案 0 :(得分:4)
使用JAX-RS 2.0,您可以使用@NameBinding
注释绑定到上传方法的ContainerRequestFilter。在此过滤器中,您将查看content-length
请求标头,并在内容长度超过您计划接受的最大值时放弃请求(requestContext.abortWith(...)
)
使用JAX-RS 1.1和RESTEasy,您可以使用PreProcessInterceptor(http://docs.jboss.org/resteasy/docs/1.1.GA/userguide/html/Interceptors.html#PreProcessInterceptors)执行相同的操作,并遵循与上述逻辑逻辑类似的逻辑逻辑。