public class StandardServletMultipartResolver extends Object implements MultipartResolver
MultipartResolver interface,
 based on the Servlet 3.0 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.
 See CommonsMultipartResolver
 for an alternative implementation using a local Commons FileUpload library
 within the application, providing maximum portability across Servlet containers.
 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 3.0 based multipart parsing,
 you need to mark the affected servlet with a "multipart-config" section in
 web.xml, or with a MultipartConfigElement
 in programmatic servlet registration, or (in case of a custom servlet class)
 possibly with a MultipartConfig annotation
 on your servlet class. Configuration settings such as maximum sizes or
 storage locations need to be applied at that servlet registration level;
 Servlet 3.0 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(boolean), 
setStrictServletCompliance(boolean), 
HttpServletRequest.getParts(), 
CommonsMultipartResolver| Constructor and Description | 
|---|
StandardServletMultipartResolver()  | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
cleanupMultipart(MultipartHttpServletRequest request)
Clean up any resources used for the multipart handling,
 like a storage for the uploaded files. 
 | 
boolean | 
isMultipart(HttpServletRequest request)
Determine if the given request contains multipart content. 
 | 
MultipartHttpServletRequest | 
resolveMultipart(HttpServletRequest request)
Parse the given HTTP request into multipart files and parameters,
 and wrap the request inside a
  
MultipartHttpServletRequest
 object that provides access to file descriptors and makes contained
 parameters accessible via the standard ServletRequest methods. | 
void | 
setResolveLazily(boolean resolveLazily)
Set whether to resolve the multipart request lazily at the time of
 file or parameter access. 
 | 
void | 
setStrictServletCompliance(boolean strictServletCompliance)
Specify whether this resolver should strictly comply with the Servlet
 specification, only kicking in for "multipart/form-data" requests. 
 | 
public void setResolveLazily(boolean resolveLazily)
Default is "false", resolving the multipart elements immediately, throwing
 corresponding exceptions at the time of the resolveMultipart(javax.servlet.http.HttpServletRequest) call.
 Switch this to "true" for lazy multipart parsing, throwing parse exceptions
 once the application attempts to obtain multipart files or parameters.
public void setStrictServletCompliance(boolean strictServletCompliance)
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 MultipartResolver mechanism,
 switch this flag to "true": Only "multipart/form-data" requests will be
 wrapped with a MultipartHttpServletRequest then; other kinds of
 requests will be left as-is, allowing for custom processing in user code.
 
Note that Commons FileUpload and therefore
 CommonsMultipartResolver
 supports any "multipart/" request type. However, it restricts processing
 to POST requests which standard Servlet multipart parsers might not do.
public boolean isMultipart(HttpServletRequest request)
MultipartResolverWill typically check for content type "multipart/form-data", but the actually accepted requests might depend on the capabilities of the resolver implementation.
isMultipart in interface MultipartResolverrequest - the servlet request to be evaluatedpublic MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException
MultipartResolverMultipartHttpServletRequest
 object that provides access to file descriptors and makes contained
 parameters accessible via the standard ServletRequest methods.resolveMultipart in interface MultipartResolverrequest - the servlet request to wrap (must be of a multipart content type)MultipartException - if the servlet request is not multipart, or if
 implementation-specific problems are encountered (such as exceeding file size limits)MultipartRequest.getFile(java.lang.String), 
MultipartRequest.getFileNames(), 
MultipartRequest.getFileMap(), 
ServletRequest.getParameter(java.lang.String), 
ServletRequest.getParameterNames(), 
ServletRequest.getParameterMap()public void cleanupMultipart(MultipartHttpServletRequest request)
MultipartResolvercleanupMultipart in interface MultipartResolverrequest - the request to clean up resources for