首页 > 解决方案 > 不管用

问题描述

我正在尝试限制通过控制器上传的文件的大小。此应用程序使用 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>不工作?是否需要更多配置?

标签: javaspringspring-mvctomcat7

解决方案


Max-file-size 将值作为字节,例如,您必须将 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)

推荐阅读