问题描述
我正在尝试限制通过控制器上传的文件的大小。此应用程序使用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)