org.apache.struts.upload

Class CommonsMultipartRequestHandler

public class CommonsMultipartRequestHandler extends Object implements MultipartRequestHandler

This class implements the MultipartRequestHandler interface by providing a wrapper around the Jakarta Commons FileUpload library.

Since: Struts 1.1

Version: $Rev: 54929 $ $Date: 2004-10-16 17:38:42 +0100 (Sat, 16 Oct 2004) $

Nested Class Summary
static classCommonsMultipartRequestHandler.CommonsFormFile
This class implements the Struts FormFile interface by wrapping the Commons FileUpload FileItem interface.
Field Summary
static longDEFAULT_SIZE_MAX
The default value for the maximum allowable size, in bytes, of an uploaded file.
static intDEFAULT_SIZE_THRESHOLD
The default value for the threshold which determines whether an uploaded file will be written to disk or cached in memory.
HashtableelementsAll
The combined text and file request parameters.
HashtableelementsFile
The file request parameters.
HashtableelementsText
The text request parameters.
protected static Loglog
Commons Logging instance.
ActionMappingmapping
The action mapping with which this handler is associated.
ActionServletservlet
The servlet with which this handler is associated.
Method Summary
protected voidaddFileParameter(FileItem item)
Adds a file parameter to the set of file parameters for this request and also to the list of all parameters.
protected voidaddTextParameter(HttpServletRequest request, FileItem item)
Adds a regular text parameter to the set of text parameters for this request and also to the list of all parameters.
protected longconvertSizeToBytes(String sizeString, long defaultSize)
Converts a size value from a string representation to its numeric value.
voidfinish()
Cleans up at the end of a request.
HashtablegetAllElements()
Returns a hash table containing both text and file request parameters.
HashtablegetFileElements()
Returns a hash table containing the file (that is, non-text) request parameters.
ActionMappinggetMapping()
Retrieves the action mapping with which this handler is associated.
protected StringgetRepositoryPath(ModuleConfig mc)
Returns the path to the temporary directory to be used for uploaded files which are written to disk.
ActionServletgetServlet()
Retrieves the servlet with which this handler is associated.
protected longgetSizeMax(ModuleConfig mc)
Returns the maximum allowable size, in bytes, of an uploaded file.
protected longgetSizeThreshold(ModuleConfig mc)
Returns the size threshold which determines whether an uploaded file will be written to disk or cached in memory.
HashtablegetTextElements()
Returns a hash table containing the text (that is, non-file) request parameters.
voidhandleRequest(HttpServletRequest request)
Parses the input stream and partitions the parsed items into a set of form fields and a set of file items.
voidrollback()
Cleans up when a problem occurs during request processing.
voidsetMapping(ActionMapping mapping)
Sets the action mapping with which this handler is associated.
voidsetServlet(ActionServlet servlet)
Sets the servlet with which this handler is associated.

Field Detail

DEFAULT_SIZE_MAX

public static final long DEFAULT_SIZE_MAX
The default value for the maximum allowable size, in bytes, of an uploaded file. The value is equivalent to 250MB.

DEFAULT_SIZE_THRESHOLD

public static final int DEFAULT_SIZE_THRESHOLD
The default value for the threshold which determines whether an uploaded file will be written to disk or cached in memory. The value is equivalent to 250KB.

elementsAll

private Hashtable elementsAll
The combined text and file request parameters.

elementsFile

private Hashtable elementsFile
The file request parameters.

elementsText

private Hashtable elementsText
The text request parameters.

log

protected static Log log
Commons Logging instance.

mapping

private ActionMapping mapping
The action mapping with which this handler is associated.

servlet

private ActionServlet servlet
The servlet with which this handler is associated.

Method Detail

addFileParameter

protected void addFileParameter(FileItem item)
Adds a file parameter to the set of file parameters for this request and also to the list of all parameters.

Parameters: item The file item for the parameter to add.

addTextParameter

protected void addTextParameter(HttpServletRequest request, FileItem item)
Adds a regular text parameter to the set of text parameters for this request and also to the list of all parameters. Handles the case of multiple values for the same parameter by using an array for the parameter value.

Parameters: request The request in which the parameter was specified. item The file item for the parameter to add.

convertSizeToBytes

protected long convertSizeToBytes(String sizeString, long defaultSize)
Converts a size value from a string representation to its numeric value. The string must be of the form nnnm, where nnn is an arbitrary decimal value, and m is a multiplier. The multiplier must be one of 'K', 'M' and 'G', representing kilobytes, megabytes and gigabytes respectively. If the size value cannot be converted, for example due to invalid syntax, the supplied default is returned instead.

Parameters: sizeString The string representation of the size to be converted. defaultSize The value to be returned if the string is invalid.

Returns: The actual size in bytes.

finish

public void finish()
Cleans up at the end of a request.

getAllElements

public Hashtable getAllElements()
Returns a hash table containing both text and file request parameters.

Returns: The text and file request parameters.

getFileElements

public Hashtable getFileElements()
Returns a hash table containing the file (that is, non-text) request parameters.

Returns: The file request parameters.

getMapping

public ActionMapping getMapping()
Retrieves the action mapping with which this handler is associated.

Returns: The associated action mapping.

getRepositoryPath

protected String getRepositoryPath(ModuleConfig mc)
Returns the path to the temporary directory to be used for uploaded files which are written to disk. The directory used is determined from the first of the following to be non-empty.
  1. A temp dir explicitly defined either using the tempDir servlet init param, or the tempDir attribute of the <controller> element in the Struts config file.
  2. The container-specified temp dir, obtained from the javax.servlet.context.tempdir servlet context attribute.
  3. The temp dir specified by the java.io.tmpdir system property.
  4. (/ol>

    Parameters: mc The module config instance for which the path should be determined.

    Returns: The path to the directory to be used to store uploaded files.

getServlet

public ActionServlet getServlet()
Retrieves the servlet with which this handler is associated.

Returns: The associated servlet.

getSizeMax

protected long getSizeMax(ModuleConfig mc)
Returns the maximum allowable size, in bytes, of an uploaded file. The value is obtained from the current module's controller configuration.

Parameters: mc The current module's configuration.

Returns: The maximum allowable file size, in bytes.

getSizeThreshold

protected long getSizeThreshold(ModuleConfig mc)
Returns the size threshold which determines whether an uploaded file will be written to disk or cached in memory.

Parameters: mc The current module's configuration.

Returns: The size threshold, in bytes.

getTextElements

public Hashtable getTextElements()
Returns a hash table containing the text (that is, non-file) request parameters.

Returns: The text request parameters.

handleRequest

public void handleRequest(HttpServletRequest request)
Parses the input stream and partitions the parsed items into a set of form fields and a set of file items. In the process, the parsed items are translated from Commons FileUpload FileItem instances to Struts FormFile instances.

Parameters: request The multipart request to be processed.

Throws: ServletException if an unrecoverable error occurs.

rollback

public void rollback()
Cleans up when a problem occurs during request processing.

setMapping

public void setMapping(ActionMapping mapping)
Sets the action mapping with which this handler is associated.

Parameters: mapping The associated action mapping.

setServlet

public void setServlet(ActionServlet servlet)
Sets the servlet with which this handler is associated.

Parameters: servlet The associated servlet.

Copyright © 2000-2008 - The Apache Software Foundation