Package org.springframework.web.multipart.support

# Class AbstractMultipartHttpServletRequest

java.lang.Object
jakarta.servlet.ServletRequestWrapper
jakarta.servlet.http.HttpServletRequestWrapper
org.springframework.web.multipart.support.AbstractMultipartHttpServletRequest

All Implemented Interfaces:
  `HttpServletRequest`, `ServletRequest`, `MultipartHttpServletRequest`, `MultipartRequest`

Direct Known Subclasses:
  `DefaultMultipartHttpServletRequest`, `StandardMultipartHttpServletRequest`

public abstract class AbstractMultipartHttpServletRequest extends HttpServletRequestWrapper implements MultipartHttpServletRequest
Abstract base implementation of the `MultipartHttpServletRequest` interface.

Provides management of pre-generated `MultipartFile` instances.

Since:
  06.10.2003
Author:
  Juergen Hoeller, Arjen Poutsma

## Field Summary

### Fields inherited from interface jakarta.servlet.http.HttpServletRequest

`BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`AbstractMultipartHttpServletRequest(HttpServletRequest request)`
Wrap the given HttpServletRequest in a MultipartHttpServletRequest.

## Method Summary

Modifier and Type
Method
Description
`MultipartFile`
`getFile(String name)`
Return the contents plus description of an uploaded file in this request, or `null` if it does not exist.
`Map<String,MultipartFile>`
`getFileMap()`
Return a `Map` of the multipart files contained in this request.
`Iterator<String>`
`getFileNames()`
Return an `Iterator` of String objects containing the parameter names of the multipart files contained in this request.
`List<MultipartFile>`
`getFiles(String name)`
Return the contents plus description of uploaded files in this request, or an empty list if it does not exist.
`org.springframework.util.MultiValueMap<String,MultipartFile>`
`getMultiFileMap()`
Return a `MultiValueMap` of the multipart files contained in this request.
`protected org.springframework.util.MultiValueMap<String,MultipartFile>`
`getMultipartFiles()`
Obtain the MultipartFile Map for retrieval, lazily initializing it if necessary.
`HttpServletRequest`
`getRequest()`
`HttpHeaders`
`getRequestHeaders()`
Return this request's headers as a convenient HttpHeaders instance.
`HttpMethod`
`getRequestMethod()`
Return this request's method as a convenient HttpMethod instance.
`protected void`
`initializeMultipart()`
Lazily initialize the multipart request, if possible.
`boolean`
`isResolved()`
Determine whether the underlying multipart request has been resolved.
`protected final void`
`setMultipartFiles(org.springframework.util.MultiValueMap<String,MultipartFile> multipartFiles)`
Set a Map with parameter names as keys and list of MultipartFile objects as values.

### Methods inherited from class jakarta.servlet.http.HttpServletRequestWrapper

`authenticate, changeSessionId, getAuthType, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getHttpServletMapping, getIntHeader, getMethod, getPart, getParts, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getTrailerFields, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isTrailerFieldsReady, isUserInRole, login, logout, newPushBuilder, upgrade`

### Methods inherited from class jakarta.servlet.ServletRequestWrapper

`getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getProtocolRequestId, getReader, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getRequestId, getScheme, getServerName, getServerPort, getServletConnection, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, isWrapperFor, isWrapperFor, removeAttribute, setAttribute, setCharacterEncoding, setRequest, startAsync, startAsync`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface jakarta.servlet.http.HttpServletRequest

`authenticate, changeSessionId, getAuthType, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getHttpServletMapping, getIntHeader, getMethod, getPart, getParts, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getTrailerFields, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isTrailerFieldsReady, isUserInRole, login, logout, newPushBuilder, upgrade`

### Methods inherited from interface org.springframework.web.multipart.MultipartHttpServletRequest

`getMultipartHeaders`

### Methods inherited from interface org.springframework.web.multipart.MultipartRequest

`getMultipartContentType`

### Methods inherited from interface jakarta.servlet.ServletRequest

`getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getProtocolRequestId, getReader, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getRequestId, getScheme, getServerName, getServerPort, getServletConnection, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, removeAttribute, setAttribute, setCharacterEncoding, startAsync, startAsync`

## Constructor Details

### AbstractMultipartHttpServletRequest

protected AbstractMultipartHttpServletRequest(HttpServletRequest request)
Wrap the given HttpServletRequest in a MultipartHttpServletRequest.

Parameters:
  `request` - the request to wrap

## Method Details

### getRequest

public HttpServletRequest getRequest()

Overrides:
  `getRequest` in class `ServletRequestWrapper`

### getRequestMethod

public HttpMethod getRequestMethod()
Description copied from interface: `MultipartHttpServletRequest`
Return this request's method as a convenient HttpMethod instance.

Specified by:
  `getRequestMethod` in interface `MultipartHttpServletRequest`

### getRequestHeaders

public HttpHeaders getRequestHeaders()
Description copied from interface: `MultipartHttpServletRequest`
Return this request's headers as a convenient HttpHeaders instance.

Specified by:
  `getRequestHeaders` in interface `MultipartHttpServletRequest`

### getFileNames

public Iterator<String> getFileNames()
Description copied from interface: `MultipartRequest`
Return an `Iterator` of String objects containing the parameter names of the multipart files contained in this request. These are the field names of the form (like with normal parameters), not the original file names.

Specified by:
  `getFileNames` in interface `MultipartRequest`
Returns:
  the names of the files

### getFile

@Nullable public MultipartFile getFile(String name)
Description copied from interface: `MultipartRequest`
Return the contents plus description of an uploaded file in this request, or `null` if it does not exist.

Specified by:
  `getFile` in interface `MultipartRequest`
Parameters:
  `name` - a String specifying the parameter name of the multipart file
Returns:
  the uploaded content in the form of a `MultipartFile` object

### getFiles

public List<MultipartFile> getFiles(String name)
Description copied from interface: `MultipartRequest`
Return the contents plus description of uploaded files in this request, or an empty list if it does not exist.

Specified by:
  `getFiles` in interface `MultipartRequest`
Parameters:
  `name` - a String specifying the parameter name of the multipart file
Returns:
  the uploaded content in the form of a `MultipartFile` list

### getFileMap

public Map<String,MultipartFile> getFileMap()
Description copied from interface: `MultipartRequest`
Return a `Map` of the multipart files contained in this request.

Specified by:
  `getFileMap` in interface `MultipartRequest`
Returns:
  a map containing the parameter names as keys, and the `MultipartFile` objects as values

### getMultiFileMap

public org.springframework.util.MultiValueMap<String,MultipartFile> getMultiFileMap()
Description copied from interface: `MultipartRequest`
Return a `MultiValueMap` of the multipart files contained in this request.

Specified by:
  `getMultiFileMap` in interface `MultipartRequest`
Returns:
  a map containing the parameter names as keys, and a list of `MultipartFile` objects as values

### isResolved

public boolean isResolved()
Determine whether the underlying multipart request has been resolved.

Returns:
  `true` when eagerly initialized or lazily triggered, `false` in case of a lazy-resolution request that got aborted before any parameters or multipart files have been accessed
Since:
  4.3.15
See Also:
  - `getMultipartFiles()`

### setMultipartFiles

protected final void setMultipartFiles(org.springframework.util.MultiValueMap<String,MultipartFile> multipartFiles)
Set a Map with parameter names as keys and list of MultipartFile objects as values. To be invoked by subclasses on initialization.

### getMultipartFiles

protected org.springframework.util.MultiValueMap<String,MultipartFile> getMultipartFiles()
Obtain the MultipartFile Map for retrieval, lazily initializing it if necessary.

See Also:
  - `initializeMultipart()`

### initializeMultipart

protected void initializeMultipart()
Lazily initialize the multipart request, if possible. Only called if not already eagerly initialized.