此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
多部分解析器
MultipartResolver
从org.springframework.web.multipart
包是一种策略
用于解析分段请求,包括文件上传。有一个基于容器的StandardServletMultipartResolver
Servlet 多部分请求解析的实现。
请注意,过时的CommonsMultipartResolver
基于 Apache Commons FileUpload 是
不再可用,从 Spring Framework 6.0 及其新的 Servlet 5.0+ 基线开始。
要启用多部分处理,您需要声明MultipartResolver
你的豆子DispatcherServlet
名称为multipartResolver
.
这DispatcherServlet
检测它并将其应用于传入请求。当 POST
内容类型为multipart/form-data
收到时,解析器解析
content 将当前HttpServletRequest
作为MultipartHttpServletRequest
自
除了将部件公开为请求参数外,还提供对已解析文件的访问。
Servlet 多部分解析
Servlet 多部分解析需要通过 Servlet 容器配置来启用。 为此,请执行以下作:
-
在 Java 中,设置一个
MultipartConfigElement
在 Servlet 注册上。 -
在
web.xml
,添加一个"<multipart-config>"
部分添加到 servlet 声明中。
以下示例显示了如何设置MultipartConfigElement
在 Servlet 注册上:
-
Java
-
Kotlin
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
.
此解析器变体按原样使用 Servlet 容器的多部分解析器,
可能会使应用程序暴露于容器实现差异。
默认情况下,它将尝试解析任何 |