【发布时间】:2016-04-19 09:59:02
【问题描述】:
对于我的 struts 项目,如果文件大小大于 2gb,doFilter() 无法从文件上传表单获取任何请求。 下面是代码片段:
Filter(类为FilterUp)如下:
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
** check request **
}
jsp 是:
<s:form id="uploadData" action="UploadAction" namespace="xyz" validateFields="false" method="post" enctype="multipart/form-data">
web.xml(用于过滤器类FilterUp)是:
<filter>
<filter-name>FilterUp</filter-name>
<filter-class>abc.xyz.FilterUp</filter-class>
<init-param>
<param-name>autoTimeout</param-name>
<param-value>1800</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>FilterUp</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
对于我的 jsp,表单通过底层 javascipt 作为 XMLHttpRequest 提交。现在,当我在我的 dofilter() 方法中上传一个文件(小于 2gb)时 我已经检查了请求的 uri 和请求长度。它们通过 jsp 表单中调用的操作和文件大小符合预期。在这种情况下,文件上传工作正常。但是如果文件大小大于 2gb ,在我的 doFilter() 方法中没有可用的请求 对于表单提交调用的文件上传操作(对于大于 2 GB 的文件)。因此,在这种情况下,上传不会继续进行。
我正在使用 Tomcat 7 和 servlet 3.0。这是bug 的任何问题吗?
我需要做什么来支持大于 2 gb 的文件上传,以便请求到达 doFilter() 方法。
Do I need to change the max-request size of my filter in web.xml? Can it be done in above case because <servlet> tag is not used here.
为了使请求到达我的 servlet,我需要进行哪些更改。
【问题讨论】:
-
您确定没有可用的请求吗?你没有遇到this 问题(即请求存在,但内容长度为0或-1)?
-
@ Jozef ,我检查了请求 uri 详细信息。它没有点击与表单关联的操作。
-
您的过滤器是如何配置的(在
web.xml中)?您应该向人们提供足够的信息,以便能够重现您的问题。 -
@ Jozef ,上面的 web.xml 已针对您请求的过滤器进行了更新。是否可以增加此过滤器的最大请求大小。
-
此查询没有相关答案。请帮帮我!!
标签: java servlets file-upload servlet-filters servlet-3.0