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