org.apache.tomcat.util.http.fileupload
public abstract class FileUploadBase extends java.lang.Object
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.
Modifier and Type | Class and Description |
---|---|
static class |
FileUploadBase.InvalidContentTypeException
Thrown to indicate that the request is not a multipart request.
|
static class |
FileUploadBase.SizeLimitExceededException
Thrown to indicate that the request size exceeds the configured maximum.
|
static class |
FileUploadBase.UnknownSizeException
Thrown to indicate that the request size is not specified.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ATTACHMENT
Content-disposition value for file attachment.
|
static java.lang.String |
CONTENT_DISPOSITION
HTTP content disposition header name.
|
static java.lang.String |
CONTENT_TYPE
HTTP content type header name.
|
static java.lang.String |
FORM_DATA
Content-disposition value for form data.
|
static int |
MAX_HEADER_SIZE
The maximum length of a single header line that will be parsed
(1024 bytes).
|
static java.lang.String |
MULTIPART
Part of HTTP content type header.
|
static java.lang.String |
MULTIPART_FORM_DATA
HTTP content type header for multipart forms.
|
static java.lang.String |
MULTIPART_MIXED
HTTP content type header for multiple uploads.
|
Constructor and Description |
---|
FileUploadBase() |
Modifier and Type | Method and Description |
---|---|
protected FileItem |
createItem(java.util.Map headers,
boolean isFormField)
Creates a new
FileItem instance. |
protected java.lang.String |
getFieldName(java.util.Map headers)
Retrieves the field name from the
Content-disposition
header. |
abstract FileItemFactory |
getFileItemFactory()
Returns the factory class used when creating file items.
|
protected java.lang.String |
getFileName(java.util.Map headers)
Retrieves the file name from the
Content-disposition
header. |
protected java.lang.String |
getHeader(java.util.Map headers,
java.lang.String name)
Returns the header with the specified name from the supplied map.
|
java.lang.String |
getHeaderEncoding()
Retrieves the character encoding used when reading the headers of an
individual part.
|
long |
getSizeMax()
Returns the maximum allowed upload size.
|
static boolean |
isMultipartContent(javax.servlet.http.HttpServletRequest req)
Utility method that determines whether the request contains multipart
content.
|
protected java.util.Map |
parseHeaders(java.lang.String headerPart)
Parses the
header-part and returns as key/value
pairs. |
java.util.List |
parseRequest(javax.servlet.http.HttpServletRequest req)
Processes an RFC 1867
compliant
multipart/form-data stream. |
abstract void |
setFileItemFactory(FileItemFactory factory)
Sets the factory class to use when creating file items.
|
void |
setHeaderEncoding(java.lang.String encoding)
Specifies the character encoding to be used when reading the headers of
individual parts.
|
void |
setSizeMax(long sizeMax)
Sets the maximum allowed upload size.
|
public static final java.lang.String CONTENT_TYPE
public static final java.lang.String CONTENT_DISPOSITION
public static final java.lang.String FORM_DATA
public static final java.lang.String ATTACHMENT
public static final java.lang.String MULTIPART
public static final java.lang.String MULTIPART_FORM_DATA
public static final java.lang.String MULTIPART_MIXED
public static final int MAX_HEADER_SIZE
public static final boolean isMultipartContent(javax.servlet.http.HttpServletRequest req)
req
- The servlet request to be evaluated. Must be non-null.true
if the request is multipart;
false
otherwise.public abstract FileItemFactory getFileItemFactory()
public abstract void setFileItemFactory(FileItemFactory factory)
factory
- The factory class for new file items.public long getSizeMax()
setSizeMax(long)
public void setSizeMax(long sizeMax)
sizeMax
- The maximum allowed size, in bytes, or -1 for no maximum.getSizeMax()
public java.lang.String getHeaderEncoding()
null
, the platform
default encoding is used.public void setHeaderEncoding(java.lang.String encoding)
null
, the platform
default encoding is used.encoding
- The encoding used to read part headers.public java.util.List parseRequest(javax.servlet.http.HttpServletRequest req) throws FileUploadException
multipart/form-data
stream. If files are stored
on disk, the path is given by getRepository()
.req
- The servlet request to be parsed.FileItem
instances parsed from the
request, in the order that they were transmitted.FileUploadException
- if there are problems reading/parsing
the request or storing files.protected java.lang.String getFileName(java.util.Map headers)
Content-disposition
header.headers
- A Map
containing the HTTP request headers.encapsulation
.protected java.lang.String getFieldName(java.util.Map headers)
Content-disposition
header.headers
- A Map
containing the HTTP request headers.encapsulation
.protected FileItem createItem(java.util.Map headers, boolean isFormField) throws FileUploadException
FileItem
instance.headers
- A Map
containing the HTTP request
headers.isFormField
- Whether or not this item is a form field, as
opposed to a file.FileItem
instance.FileUploadException
- if an error occurs.protected java.util.Map parseHeaders(java.lang.String headerPart)
Parses the header-part
and returns as key/value
pairs.
If there are multiple headers of the same names, the name will map to a comma-separated list containing the values.
headerPart
- The header-part
of the current
encapsulation
.Map
containing the parsed HTTP request headers.protected final java.lang.String getHeader(java.util.Map headers, java.lang.String name)
headers
- A Map
containing the HTTP request headers.name
- The name of the header to return.Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.