# Class JakartaServletFileUpload<I extends FileItem<I>, F extends FileItemFactory<I>>

java.lang.Object
org.apache.commons.fileupload2.core.AbstractFileUpload<jakarta.servlet.http.HttpServletRequest, I, F>
org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload<I,F>

Type Parameters:
  `I` - The FileItem type.
  `F` - the FileItemFactory type.

Direct Known Subclasses:
  `JakartaServletDiskFileUpload`

public class JakartaServletFileUpload<I extends FileItem<I>, F extends FileItemFactory<I>> extends AbstractFileUpload<jakarta.servlet.http.HttpServletRequest, I, F>
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.

## Field Summary

### Fields inherited from class AbstractFileUpload

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

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`FileItemInputIterator`
`getItemIterator(jakarta.servlet.http.HttpServletRequest request)`
Gets an RFC 1867 compliant `multipart/form-data` file item iterator.
`static final boolean`
`isMultipartContent(jakarta.servlet.http.HttpServletRequest request)`
Tests whether the request contains multipart content.
`Map<String,List<I>>`
`parseParameterMap(jakarta.servlet.http.HttpServletRequest request)`
Parses an RFC 1867 compliant `multipart/form-data` stream.
`List<I>`
`parseRequest(jakarta.servlet.http.HttpServletRequest request)`
Parses an RFC 1867 compliant `multipart/form-data` stream.

### Methods inherited from class AbstractFileUpload

`getBoundary, getFieldName, getFileItemFactory, getFileName, getHeaderCharset, getItemIterator, getMaxFileCount, getMaxFileSize, getMaxPartHeaderSize, getMaxSize, getParsedHeaders, getProgressListener, isMultipartContent, isMultipartRequestMethod, newFileItemHeaders, parseParameterMap, parseRequest, setFileItemFactory, setHeaderCharset, setMaxFileCount, setMaxFileSize, setMaxPartHeaderSize, setMaxSize, setProgressListener`

### Methods inherited from class Object

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

## Constructor Details

### JakartaServletFileUpload

public JakartaServletFileUpload()
Constructs an uninitialized instance of this class. A factory must be configured, using `setFileItemFactory()`, before attempting to parse requests.

See Also:
  - `AbstractFileUpload()`

### JakartaServletFileUpload

public JakartaServletFileUpload(F 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:
  - `AbstractFileUpload()`

## Method Details

### isMultipartContent

public static final boolean isMultipartContent(jakarta.servlet.http.HttpServletRequest request)
Tests 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 FileItemInputIterator getItemIterator(jakarta.servlet.http.HttpServletRequest request) throws FileUploadException, IOException
Gets an RFC 1867 compliant `multipart/form-data` file item iterator.

Specified by:
  `getItemIterator` in class `AbstractFileUpload<jakarta.servlet.http.HttpServletRequest, I extends FileItem<I>, F extends FileItemFactory<I>>`
Parameters:
  `request` - The servlet request to be parsed.
Returns:
  An iterator to instances of `FileItemInput` 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<I>> parseParameterMap(jakarta.servlet.http.HttpServletRequest request) throws FileUploadException
Parses an RFC 1867 compliant `multipart/form-data` stream.

Specified by:
  `parseParameterMap` in class `AbstractFileUpload<jakarta.servlet.http.HttpServletRequest, I extends FileItem<I>, F extends FileItemFactory<I>>`
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.

### parseRequest

public List<I> parseRequest(jakarta.servlet.http.HttpServletRequest request) throws FileUploadException
Parses an RFC 1867 compliant `multipart/form-data` stream.

Specified by:
  `parseRequest` in class `AbstractFileUpload<jakarta.servlet.http.HttpServletRequest, I extends FileItem<I>, F extends FileItemFactory<I>>`
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.