MultipartResolver interface,
based on the Servlet jakarta.servlet.http.Part API.
To be added as "multipartResolver" bean to a Spring DispatcherServlet context,
without any extra configuration at the bean level (see below).
This resolver variant uses your Servlet container's multipart parser as-is,
potentially exposing the application to container implementation differences.
Also, see this resolver's configuration option for
strict Servlet compliance, narrowing the
applicability of Spring's MultipartHttpServletRequest to form data only.
Note
In order to use Servlet container based multipart parsing,
you need to mark the affected servlet with a "multipart-config" section in
web.xml, or with a jakarta.
in programmatic servlet registration, or (in case of a custom servlet class)
possibly with a jakarta. annotation
on your servlet class. Configuration settings such as maximum sizes or storage
locations need to be applied at that servlet registration level; a Servlet
container does not allow for them to be set at the MultipartResolver level.
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
// ...
@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
// Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold
registration.setMultipartConfig(new MultipartConfigElement("/tmp"));
}
}
setResolveLazily, setStrictServletCompliance, HttpServletRequest#getParts()
| Modifier and Type | Field and Description |
|---|---|
| private boolean | |
| private boolean |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public void | cleanupMultipart(MultipartHttpServletRequest
the request to clean up resources for request)Implements org. |
| public boolean | isMultipart(HttpServletRequest
the servlet request to be evaluated request)Implements org. |
| public MultipartHttpServletRequest | resolveMultipart(HttpServletRequest
the servlet request to wrap (must be of a multipart content type) request)Implements org. org.
object that provides access to file descriptors and makes contained
parameters accessible via the standard ServletRequest methods.
|
| public void | setResolveLazily(boolean resolveLazily)
Set whether to resolve the multipart request lazily at the time of file or parameter access. |
| public void | setStrictServletCompliance(boolean strictServletCompliance)
Specify whether this resolver should strictly comply with the Servlet specification, only kicking in for "multipart/form-data" requests. |
| resolveLazily | back to summary |
|---|---|
| private boolean resolveLazily | |
| strictServletCompliance | back to summary |
|---|---|
| private boolean strictServletCompliance | |
| StandardServletMultipartResolver | back to summary |
|---|---|
| public StandardServletMultipartResolver() | |
| cleanupMultipart | back to summary |
|---|---|
| public void cleanupMultipart(MultipartHttpServletRequest request) Implements org. Doc from org. Clean up any resources used for the multipart handling, like a storage for the uploaded files.
| |
| isMultipart | back to summary |
|---|---|
| public boolean isMultipart(HttpServletRequest request) Implements org. Doc from org. Determine if the given request contains multipart content. Will typically check for content type "multipart/form-data", but the actually accepted requests might depend on the capabilities of the resolver implementation.
| |
| resolveMultipart | back to summary |
|---|---|
| public MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException Implements org. Doc from org. Parse the given HTTP request into multipart files and parameters,
and wrap the request inside a
| |
| setResolveLazily | back to summary |
|---|---|
| public void setResolveLazily(boolean resolveLazily) Set whether to resolve the multipart request lazily at the time of file or parameter access. Default is "false", resolving the multipart elements immediately, throwing
corresponding exceptions at the time of the
| |
| setStrictServletCompliance | back to summary |
|---|---|
| public void setStrictServletCompliance(boolean strictServletCompliance) Specify whether this resolver should strictly comply with the Servlet specification, only kicking in for "multipart/form-data" requests. Default is "false", trying to process any request with a "multipart/"
content type as far as the underlying Servlet container supports it
(which works on e.g. Tomcat but not on Jetty). For consistent portability
and in particular for consistent custom handling of non-form multipart
request types outside of Spring's
| |