【问题标题】:doFilter() fails to get any request for the file upload > 2gbdoFilter() 无法获取文件上传> 2gb 的任何请求
【发布时间】: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 &lt;servlet&gt; 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


【解决方案1】:

Tomcat 7 中默认的最大文件上传大小为 2GB。 检查

`$TOMCAT_HOME/conf/server.xml`

并配置连接器:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           maxPostSize="4294967296"
           redirectPort="8443" />

这会将最大文件上传大小设置为 4GB。

【讨论】:

  • 我也尝试过,但在这种情况下不起作用。大上传请求仍然没有到达doFilter()。
猜你喜欢
  • 1970-01-01
  • 2011-07-17
  • 2014-08-11
  • 1970-01-01
  • 2016-10-20
  • 2011-07-18
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多