Package org.apache.commons.fileupload.servlet

# Class ServletFileUpload

java.lang.Object
org.apache.commons.fileupload.FileUploadBase
org.apache.commons.fileupload.FileUpload
org.apache.commons.fileupload.servlet.ServletFileUpload

public class ServletFileUpload extends FileUpload

High level API for processing file uploads.

This class handles multiple files per single HTML widget, sent using `multipart/mixed` encoding type, as specified by RFC 1867. Use `parseRequest(HttpServletRequest)` to acquire a list of `FileItem`s associated with a given HTML widget.

How the data for individual parts is stored is determined by the factory used to create them; a given part may be in memory, on disk, or somewhere else.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.commons.fileupload.FileUploadBase

  `FileUploadBase.FileSizeLimitExceededException, FileUploadBase.FileUploadIOException, FileUploadBase.InvalidContentTypeException, FileUploadBase.IOFileUploadException, FileUploadBase.SizeException, FileUploadBase.SizeLimitExceededException, FileUploadBase.UnknownSizeException`

- ## Field Summary

  ### Fields inherited from class org.apache.commons.fileupload.FileUploadBase

  `ATTACHMENT, CONTENT_DISPOSITION, CONTENT_LENGTH, CONTENT_TYPE, DEFAULT_PART_HEADER_SIZE_MAX, FORM_DATA, MAX_HEADER_SIZE, MULTIPART, MULTIPART_FORM_DATA, MULTIPART_MIXED, MULTIPART_RELATED`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ServletFileUpload()`
  Constructs an uninitialized instance of this class.
  `ServletFileUpload(FileItemFactory fileItemFactory)`
  Constructs an instance of this class which uses the supplied factory to create `FileItem` instances.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `FileItemIterator`
  `getItemIterator(HttpServletRequest request)`
  Processes an RFC 1867 compliant `multipart/form-data` stream.
  `static final boolean`
  `isMultipartContent(HttpServletRequest request)`
  Utility method that determines whether the request contains multipart content.
  `Map<String,List<FileItem>>`
  `parseParameterMap(HttpServletRequest request)`
  Processes an RFC 1867 compliant `multipart/form-data` stream.
  `List<FileItem>`
  `parseRequest(HttpServletRequest request)`
  Processes an RFC 1867 compliant `multipart/form-data` stream.

  ### Methods inherited from class org.apache.commons.fileupload.FileUpload

  `getFileItemFactory, setFileItemFactory`

  ### Methods inherited from class org.apache.commons.fileupload.FileUploadBase

  `createItem, getBoundary, getFieldName, getFieldName, getFileCountMax, getFileName, getFileName, getFileSizeMax, getHeader, getHeaderEncoding, getItemIterator, getParsedHeaders, getPartHeaderSizeMax, getProgressListener, getSizeMax, isMultipartContent, newFileItemHeaders, parseHeaders, parseParameterMap, parseRequest, setFileCountMax, setFileSizeMax, setHeaderEncoding, setPartHeaderSizeMax, setProgressListener, setSizeMax`

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

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

- ## Constructor Details

  - ### ServletFileUpload

    public ServletFileUpload()
    Constructs an uninitialized instance of this class. A factory must be configured, using `setFileItemFactory()`, before attempting to parse requests.
    See Also:
      - `FileUpload(FileItemFactory)`

  - ### ServletFileUpload

    public ServletFileUpload(FileItemFactory fileItemFactory)
    Constructs an instance of this class which uses the supplied factory to create `FileItem` instances.
    Parameters:
      `fileItemFactory` - The factory to use for creating file items.
    See Also:
      - `FileUpload()`

- ## Method Details

  - ### isMultipartContent

    public static final boolean isMultipartContent(HttpServletRequest request)
    Utility method that determines whether the request contains multipart content.
    Parameters:
      `request` - The servlet request to be evaluated. Must be non-null.
    Returns:
      `true` if the request is multipart; `false` otherwise.

  - ### getItemIterator

    public FileItemIterator getItemIterator(HttpServletRequest request) throws FileUploadException, IOException
    Processes an RFC 1867 compliant `multipart/form-data` stream.
    Parameters:
      `request` - The servlet request to be parsed.
    Returns:
      An iterator to instances of `FileItemStream` parsed from the request, in the order that they were transmitted.
    Throws:
      `FileUploadException` - if there are problems reading/parsing the request or storing files.
      `IOException` - An I/O error occurred. This may be a network error while communicating with the client or a problem while storing the uploaded content.

  - ### parseParameterMap

    public Map<String,List<FileItem>> parseParameterMap(HttpServletRequest request) throws FileUploadException
    Processes an RFC 1867 compliant `multipart/form-data` stream.
    Parameters:
      `request` - The servlet request to be parsed.
    Returns:
      A map of `FileItem` instances parsed from the request.
    Throws:
      `FileUploadException` - if there are problems reading/parsing the request or storing files.
    Since:
      1.3

  - ### parseRequest

    public List<FileItem> parseRequest(HttpServletRequest request) throws FileUploadException
    Processes an RFC 1867 compliant `multipart/form-data` stream.
    Overrides:
      `parseRequest` in class `FileUploadBase`
    Parameters:
      `request` - The servlet request to be parsed.
    Returns:
      A list of `FileItem` instances parsed from the request, in the order that they were transmitted.
    Throws:
      `FileUploadException` - if there are problems reading/parsing the request or storing files.