Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java doFilter()无法获取任何文件上载请求>;2gb_Java_Servlets_File Upload_Servlet Filters_Servlet 3.0 - Fatal编程技术网

Java doFilter()无法获取任何文件上载请求>;2gb

Java doFilter()无法获取任何文件上载请求>;2gb,java,servlets,file-upload,servlet-filters,servlet-3.0,Java,Servlets,File Upload,Servlet Filters,Servlet 3.0,对于我的struts项目,如果文件大小大于2gb,doFilter()无法从文件上传表单获取任何请求。 下面是代码片段: 过滤器(类为FilterUp)如下所示: public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServlet

对于我的struts项目,如果文件大小大于2gb,doFilter()无法从文件上传表单获取任何请求。 下面是代码片段:

过滤器(类为FilterUp)如下所示:

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException
{   
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    ** check request **
}
<s:form id="uploadData" action="UploadAction" namespace="xyz" validateFields="false" method="post" enctype="multipart/form-data">
<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是:

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException
{   
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    ** check request **
}
<s:form id="uploadData" action="UploadAction" namespace="xyz" validateFields="false" method="post" enctype="multipart/form-data">
<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>

web.xml(用于过滤类FilterUp)是:

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException
{   
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    ** check request **
}
<s:form id="uploadData" action="UploadAction" namespace="xyz" validateFields="false" method="post" enctype="multipart/form-data">
<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>

过滤器
abc.xyz.FilterUp
自动超时
1800
过滤器
/*
对于我的jsp,表单通过底层javascipt作为XMLHttpRequest提交。现在,当我上传一个文件(小于2gb)时,在我的dofilter()方法中 我已经检查了请求的uri和请求长度。通过jsp表单中调用的操作和文件大小,它们与预期的一样。在这种情况下,文件上传工作正常。但如果文件大小大于2gb,则在我的doFilter()方法中没有可用的请求 对于表单提交调用的文件上载操作(对于大于2 gb的文件大小)。因此,在这种情况下,上传不会进一步进行

我正在使用Tomcat7和Servlet3.0。这有什么问题吗。 我需要做什么来支持大于2GB的文件上传,以便请求到达doFilter()方法。
是否需要更改web.xml中筛选器的最大请求大小?在上述情况下是否可以这样做,因为此处未使用标记。


为了让请求到达我的servlet,我需要做哪些更改。

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

并配置连接器:

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


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

您确定没有可用的请求吗?您是否遇到了问题(即请求存在,但内容长度为0或-1)?@Jozef,我已检查了请求uri的详细信息。它未命中与表单关联的操作。如何配置筛选器(在
web.xml
中)?您应该向人们提供足够的信息,使他们能够重现您的问题。@Jozef,上面的web.xml已针对您请求的筛选器进行了更新。是否可以增加此筛选器请求的最大大小。此查询没有相关答案。请帮帮我!!我也尝试过同样的方法,但在这种情况下不起作用。对于大型上载的请求仍然没有到达doFilter()。