org.apache.tomcat.util.http.fileupload
public abstract class FileUploadBase extends 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 to acquire a list of FileItems 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.
Version: $Id: FileUploadBase.java 467222 2006-10-24 03:17:11Z markt $
Nested Class Summary | |
---|---|
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. |
Field Summary | |
---|---|
static String | ATTACHMENT
Content-disposition value for file attachment. |
static String | CONTENT_DISPOSITION
HTTP content disposition header name. |
static String | CONTENT_TYPE
HTTP content type header name. |
static 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 String | MULTIPART
Part of HTTP content type header. |
static String | MULTIPART_FORM_DATA
HTTP content type header for multipart forms. |
static String | MULTIPART_MIXED
HTTP content type header for multiple uploads. |
Method Summary | |
---|---|
protected FileItem | createItem(Map headers, boolean isFormField)
Creates a new FileItem instance.
|
protected String | getFieldName(Map headers)
Retrieves the field name from the Content-disposition
header.
|
abstract FileItemFactory | getFileItemFactory()
Returns the factory class used when creating file items.
|
protected String | getFileName(Map headers)
Retrieves the file name from the Content-disposition
header.
|
protected String | getHeader(Map headers, String name)
Returns the header with the specified name from the supplied map. |
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(HttpServletRequest req)
Utility method that determines whether the request contains multipart
content.
|
protected Map | parseHeaders(String headerPart) Parses the |
List | parseRequest(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(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. |
Parameters: headers A Map
containing the HTTP request
headers. isFormField Whether or not this item is a form field, as
opposed to a file.
Returns: A newly created FileItem
instance.
Throws: FileUploadException if an error occurs.
Content-disposition
header.
Parameters: headers A Map
containing the HTTP request headers.
Returns: The field name for the current encapsulation
.
Returns: The factory class for new file items.
Content-disposition
header.
Parameters: headers A Map
containing the HTTP request headers.
Returns: The file name for the current encapsulation
.
Parameters: headers A Map
containing the HTTP request headers. name The name of the header to return.
Returns: The value of specified header, or a comma-separated list if there were multiple headers of that name.
null
, the platform
default encoding is used.
Returns: The encoding used to read part headers.
Parameters: req The servlet request to be evaluated. Must be non-null.
Returns: true
if the request is multipart;
false
otherwise.
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.
Parameters: headerPart The header-part
of the current
encapsulation
.
Returns: A Map
containing the parsed HTTP request headers.
multipart/form-data
stream. If files are stored
on disk, the path is given by getRepository()
.
Parameters: req 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.
Parameters: factory The factory class for new file items.
null
, the platform
default encoding is used.
Parameters: encoding The encoding used to read part headers.
Parameters: sizeMax The maximum allowed size, in bytes, or -1 for no maximum.