<multipart-config> <max-file-size>不起作用

问题描述

我正在尝试限制通过控制器上传文件的大小。此应用程序使用web.xml进行Servlet配置。该应用程序使用Spring 4。

<servlet>
    <servlet-name>appname</servlet-name>
    <servlet-class>org.springframework.web.servlet.dispatcherServlet</servlet-class>
    <multipart-config>
        <max-file-size>10000</max-file-size>
        <max-request-size>10000</max-request-size>
    </multipart-config>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/appname.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>appname</servlet-name>
    <url-pattern>/app/*</url-pattern>
</servlet-mapping>

这不起作用:

<multipart-config>
        <max-file-size>10000</max-file-size>
        <max-request-size>10000</max-request-size>
</multipart-config>

我能够上传大于10 kb的文件,并且即将上传到我的控制器中。 为什么<multipart-config>不起作用?是否需要更多配置?

解决方法

最大文件大小以字节为单位,例如,您必须将500Mo乘以1024 * 1024,如下所示。

 <multipart-config>
    <max-file-size>524288000</max-file-size>
    <max-request-size>524288000</max-request-size>
    <file-size-threshold>0</file-size-threshold>
</multipart-config>

您还可以删除web.xml上的注释并添加注释:

@MultipartConfig(maxFileSize = 1024*1024*5)