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

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `FileItemIterator` | `getItemIterator​(HttpServletRequest request)` | Processes an RFC 1867 compliant `multipart/form-data` stream.
    `static boolean` | `isMultipartContent​(HttpServletRequest request)` | Utility method that determines whether the request contains multipart content.
    `java.util.Map<java.lang.String,​java.util.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, getFileName, getFileSizeMax, getHeaderEncoding, getItemIterator, getParsedHeaders, getProgressListener, getSizeMax, isMultipartContent, newFileItemHeaders, parseParameterMap, parseRequest, setFileSizeMax, setHeaderEncoding, setProgressListener, setSizeMax`

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

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

- - ### Constructor Detail

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

    - #### 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 java.util.Map<java.lang.String,​java.util.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,
                                                  java.io.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.
        `java.io.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.