Package org.apache.tomcat.util.http.fileupload.servlet

# Class ServletFileUpload

java.lang.Object
org.apache.tomcat.util.http.fileupload.FileUploadBase
org.apache.tomcat.util.http.fileupload.FileUpload
org.apache.tomcat.util.http.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 `FileUploadBase.parseRequest(org.apache.tomcat.util.http.fileupload.RequestContext)` 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.

- ## Field Summary

  ### Fields inherited from class org.apache.tomcat.util.http.fileupload.FileUploadBase

  `ATTACHMENT, CONTENT_DISPOSITION, CONTENT_LENGTH, CONTENT_TYPE, FORM_DATA, MULTIPART, MULTIPART_FORM_DATA, MULTIPART_MIXED`

- ## 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.

  ### Methods inherited from class org.apache.tomcat.util.http.fileupload.FileUpload

  `getFileItemFactory, setFileItemFactory`

  ### Methods inherited from class org.apache.tomcat.util.http.fileupload.FileUploadBase

  `getBoundary, getFieldName, getFileCountMax, getFileName, getFileSizeMax, getHeaderEncoding, getItemIterator, getParsedHeaders, getProgressListener, getSizeMax, isMultipartContent, newFileItemHeaders, parseParameterMap, parseRequest, setFileCountMax, setFileSizeMax, setHeaderEncoding, 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.

  - ### 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

  - ### 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.