org.apache.commons.fileupload

Class 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 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 $
Authors:
Rafal Krzewski
Daniel Rall
Jason van Zyl
John McNally
Martin Cooper
Sean C. Sullivan

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.commons.fileupload.FileUploadBase

FileUploadBase.InvalidContentTypeException, FileUploadBase.SizeLimitExceededException, FileUploadBase.UnknownSizeException

Field Summary

private DefaultFileItemFactory
fileItemFactory
The factory to use to create new form items.

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, headerEncoding, sizeMax

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.
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.
List
parseRequest(HttpServletRequest req, int sizeThreshold, long sizeMax, 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(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, getFileItemFactory, getFileName, getHeader, getHeaderEncoding, getSizeMax, isMultipartContent, parseHeaders, parseRequest, setFileItemFactory, setHeaderEncoding, setSizeMax

Field Details

fileItemFactory

private DefaultFileItemFactory fileItemFactory
The factory to use to create new form items.

Constructor Details

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.

Method Details

getFileItemFactory

public FileItemFactory getFileItemFactory()
Returns the factory class used when creating file items.
Overrides:
getFileItemFactory in interface FileUploadBase
Returns:
The factory class for new file items.

getRepositoryPath

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

getSizeThreshold

public int getSizeThreshold()
Returns the size threshold beyond which files are written directly to disk.
Returns:
The size threshold, in bytes.

parseRequest

public List parseRequest(HttpServletRequest req,
                         int sizeThreshold,
                         long sizeMax,
                         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.

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.
Overrides:
setFileItemFactory in interface FileUploadBase
Parameters:
factory - The factory class for new file items.

setRepositoryPath

public void setRepositoryPath(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.

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.

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