此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Framework 6.2.10spring-doc.cadn.net.cn

多部分解析器

MultipartResolverorg.springframework.web.multipart包是一种策略 用于解析分段请求,包括文件上传。有一个基于容器的StandardServletMultipartResolverServlet 多部分请求解析的实现。 请注意,过时的CommonsMultipartResolver基于 Apache Commons FileUpload 是 不再可用,从 Spring Framework 6.0 及其新的 Servlet 5.0+ 基线开始。spring-doc.cadn.net.cn

要启用多部分处理,您需要声明MultipartResolver你的豆子DispatcherServlet名称为multipartResolver. 这DispatcherServlet检测它并将其应用于传入请求。当 POST 内容类型为multipart/form-data收到时,解析器解析 content 将当前HttpServletRequest作为MultipartHttpServletRequest自 除了将部件公开为请求参数外,还提供对已解析文件的访问。spring-doc.cadn.net.cn

Servlet 多部分解析

Servlet 多部分解析需要通过 Servlet 容器配置来启用。 为此,请执行以下作:spring-doc.cadn.net.cn

以下示例显示了如何设置MultipartConfigElement在 Servlet 注册上:spring-doc.cadn.net.cn

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

	// ...

	@Override
	protected void customizeRegistration(ServletRegistration.Dynamic registration) {

		// Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold
		registration.setMultipartConfig(new MultipartConfigElement("/tmp"));
	}

}
class AppInitializer : AbstractAnnotationConfigDispatcherServletInitializer() {

	// ...

	override fun customizeRegistration(registration: ServletRegistration.Dynamic) {

		// Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold
		registration.setMultipartConfig(MultipartConfigElement("/tmp"))
	}

}

一旦 Servlet 多部分配置就位,您可以添加类型为StandardServletMultipartResolver名称为multipartResolver.spring-doc.cadn.net.cn

此解析器变体按原样使用 Servlet 容器的多部分解析器, 可能会使应用程序暴露于容器实现差异。 默认情况下,它将尝试解析任何multipart/内容类型与任何 HTTP 方法,但并非所有 Servlet 容器都支持此功能。请参阅StandardServletMultipartResolverjavadoc 获取详细信息和配置选项。spring-doc.cadn.net.cn