跳到主要内容
版本:7.0.3

多部分请求解析器(Multipart Resolver)

Hunyuan 7b 中英对照 Multipart Resolver

org.springframework.webmultipart包中的MultipartResolver是一种用于解析包含文件上传的多部分请求(multipart requests)的策略。对于Servlet多部分请求的解析,还有一种基于容器的实现,即StandardServletMultipartResolver

要启用多部分数据处理(multipart handling),你需要在DispatcherServlet的Spring配置中声明一个名为multipartResolver的bean。DispatcherServlet会检测到这个bean并将其应用于传入的请求。当接收到内容类型为multipart/form-data的POST请求时,该解析器(resolver)会解析请求内容,并将当前的HttpServletRequest包装成MultipartHttpServletRequest,这样除了能够将各部分数据作为请求参数(request parameters)获取外,还可以访问这些被解析的数据文件。

Servlet Multipart 解析

Servlet的多部分数据解析(multipart parsing)需要通过Servlet容器的配置来启用。为此:

  • 在Java中,在Servlet注册时设置一个MultipartConfigElement
  • web.xml中,向servlet声明添加一个"<multipart-config>"部分。

以下示例展示了如何在Servlet注册时设置一个MultipartConfigElement

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

// ...

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

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

}

一旦Servlet的多部分配置就绪,你就可以添加一个类型为StandardServletMultipartResolver的bean,其名称为multipartResolver

备注

这种解析器变体直接使用您的Servlet容器的multipart解析器,可能会使应用程序受到容器实现差异的影响。默认情况下,它会尝试解析任何multipart/内容类型以及任何HTTP方法,但并非所有Servlet容器都支持这一点。详情和配置选项请参阅StandardServletMultipartResolver的Javadoc。