在 spring5 中我们可以创建如下所示的 bean。
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<value>1073741824</value>
</property>
</bean>
但是这个 CommonsMultipartResolver 在 spring-6 中被删除。
因此我们有 org.springframework.web.multipart.support.StandardServletMultipartResolver 用于分段文件上传。但是如何设置 maxUploadSize 属性,因为该属性在上面的类中不可用?
请遵循 JEE 文档 或检查 StandardServletMultipartResolver 文档。
您可以使用web.xml
<multipart-config>
<location>/tmp</location>
<max-file-size>26214400</max-file-size>
<max-request-size>31457280</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
或者javax servlet注释:
@WebServlet("/uploadServlet")
@MultipartConfig(location="/tmp", fileSizeThreshold=1024*1024,
maxFileSize=1024*1024*5, maxRequestSize=1024*1024*5*5)
public class UploadServlet extends HttpServlet {
// ...
或者 spring 注解配置:
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
// ...
@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
// Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold
registration.setMultipartConfig(new MultipartConfigElement("/tmp"));
}
}