org.apache.commons.fileupload
Class DiskFileUpload

java.lang.Object
  |
  +--org.apache.commons.fileupload.FileUploadBase
        |
        +--org.apache.commons.fileupload.DiskFileUpload

public class DiskFileUpload
extends FileUploadBase

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(HttpServletRequest) to acquire a list of FileItems associated with a given HTML widget.

Individual parts will be stored in temporary disk storage or in memory, depending on their size, and will be available as FileItems.

Version:
$Id: DiskFileUpload.java,v 1.3 2003/06/01 00:18:13 martinc Exp $
Author:
Rafal Krzewski, Daniel Rall, Jason van Zyl, John McNally, Martin Cooper, Sean C. Sullivan

Nested Class Summary
 
Nested classes inherited from class org.apache.commons.fileupload.FileUploadBase
FileUploadBase.InvalidContentTypeException, FileUploadBase.SizeLimitExceededException, FileUploadBase.UnknownSizeException
 
Field Summary
 
Fields inherited from class org.apache.commons.fileupload.FileUploadBase
ATTACHMENT, CONTENT_DISPOSITION, CONTENT_TYPE, FORM_DATA, MAX_HEADER_SIZE, MULTIPART, MULTIPART_FORM_DATA, MULTIPART_MIXED
 
Constructor Summary
DiskFileUpload()
          Constructs an instance of this class which uses the default factory to create FileItem instances.
DiskFileUpload(DefaultFileItemFactory fileItemFactory)
          Constructs an instance of this class which uses the supplied factory to create FileItem instances.
 
Method Summary
 FileItemFactory getFileItemFactory()
          Returns the factory class used when creating file items.
 java.lang.String getRepositoryPath()
          Returns the location used to temporarily store files that are larger than the configured size threshold.
 int getSizeThreshold()
          Returns the size threshold beyond which files are written directly to disk.
 java.util.List parseRequest(javax.servlet.http.HttpServletRequest req, int sizeThreshold, long sizeMax, java.lang.String path)
          Processes an RFC 1867 compliant multipart/form-data stream.
 void setFileItemFactory(FileItemFactory factory)
          Sets the factory class to use when creating file items.
 void setRepositoryPath(java.lang.String repositoryPath)
          Sets the location used to temporarily store files that are larger than the configured size threshold.
 void setSizeThreshold(int sizeThreshold)
          Sets the size threshold beyond which files are written directly to disk.
 
Methods inherited from class org.apache.commons.fileupload.FileUploadBase
createItem, getFieldName, getFileName, getHeader, getHeaderEncoding, getSizeMax, isMultipartContent, parseHeaders, parseRequest, setHeaderEncoding, setSizeMax
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DiskFileUpload

public DiskFileUpload()
Constructs an instance of this class which uses the default factory to create FileItem instances.

See Also:
DiskFileUpload(DefaultFileItemFactory fileItemFactory)

DiskFileUpload

public DiskFileUpload(DefaultFileItemFactory fileItemFactory)
Constructs an instance of this class which uses the supplied factory to create FileItem instances.

See Also:
DiskFileUpload()
Method Detail

getFileItemFactory

public FileItemFactory getFileItemFactory()
Returns the factory class used when creating file items.

Specified by:
getFileItemFactory in class FileUploadBase
Returns:
The factory class for new file items.

setFileItemFactory

public void setFileItemFactory(FileItemFactory factory)
Sets the factory class to use when creating file items. The factory must be an instance of DefaultFileItemFactory or a subclass thereof, or else a ClassCastException will be thrown.

Specified by:
setFileItemFactory in class FileUploadBase
Parameters:
factory - The factory class for new file items.

getSizeThreshold

public int getSizeThreshold()
Returns the size threshold beyond which files are written directly to disk.

Returns:
The size threshold, in bytes.
See Also:
setSizeThreshold(int)

setSizeThreshold

public void setSizeThreshold(int sizeThreshold)
Sets the size threshold beyond which files are written directly to disk.

Parameters:
sizeThreshold - The size threshold, in bytes.
See Also:
getSizeThreshold()

getRepositoryPath

public java.lang.String getRepositoryPath()
Returns the location used to temporarily store files that are larger than the configured size threshold.

Returns:
The path to the temporary file location.
See Also:
setRepositoryPath(String)

setRepositoryPath

public void setRepositoryPath(java.lang.String repositoryPath)
Sets the location used to temporarily store files that are larger than the configured size threshold.

Parameters:
repositoryPath - The path to the temporary file location.
See Also:
getRepositoryPath()

parseRequest

public java.util.List parseRequest(javax.servlet.http.HttpServletRequest req,
                                   int sizeThreshold,
                                   long sizeMax,
                                   java.lang.String path)
                            throws FileUploadException
Processes an RFC 1867 compliant multipart/form-data stream. If files are stored on disk, the path is given by getRepository().

Parameters:
req - The servlet request to be parsed. Must be non-null.
sizeThreshold - The max size in bytes to be stored in memory.
sizeMax - The maximum allowed upload size, in bytes.
path - The location where the files should be stored.
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.


Copyright © 2002-2003 Apache Software Foundation. All Rights Reserved.