Package nl.b3p.commons.uploadProgress
Class ExtendedMultipartRequestHandler
- java.lang.Object
-
- nl.b3p.commons.uploadProgress.ExtendedMultipartRequestHandler
-
- All Implemented Interfaces:
org.apache.struts.upload.MultipartRequestHandler
public class ExtendedMultipartRequestHandler extends Object implements org.apache.struts.upload.MultipartRequestHandler
This class implements theMultipartRequestHandler
interface by providing a wrapper around the Jakarta Commons FileUpload library.- Since:
- Struts 1.1
- Version:
- $Rev: 54929 $ $Date: 2004-10-16 09:38:42 -0700 (Sat, 16 Oct 2004) $
-
-
Field Summary
Fields Modifier and Type Field Description static long
DEFAULT_SIZE_MAX
The default value for the maximum allowable size, in bytes, of an uploaded file.static 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.protected static org.apache.commons.logging.Log
log
Commons Logging instance.
-
Constructor Summary
Constructors Constructor Description ExtendedMultipartRequestHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addFileParameter(org.apache.commons.fileupload.FileItem item)
Adds a file parameter to the set of file parameters for this request and also to the list of all parameters.protected void
addTextParameter(javax.servlet.http.HttpServletRequest request, org.apache.commons.fileupload.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 long
convertSizeToBytes(String sizeString, long defaultSize)
Converts a size value from a string representation to its numeric value.void
finish()
Cleans up at the end of a request.Hashtable
getAllElements()
Returns a hash table containing both text and file request parameters.Hashtable
getFileElements()
Returns a hash table containing the file (that is, non-text) request parameters.org.apache.struts.action.ActionMapping
getMapping()
Retrieves the action mapping with which this handler is associated.protected String
getRepositoryPath(org.apache.struts.config.ModuleConfig mc)
Returns the path to the temporary directory to be used for uploaded files which are written to disk.org.apache.struts.action.ActionServlet
getServlet()
Retrieves the servlet with which this handler is associated.protected long
getSizeMax(org.apache.struts.config.ModuleConfig mc)
Returns the maximum allowable size, in bytes, of an uploaded file.protected long
getSizeThreshold(org.apache.struts.config.ModuleConfig mc)
Returns the size threshold which determines whether an uploaded file will be written to disk or cached in memory.Hashtable
getTextElements()
Returns a hash table containing the text (that is, non-file) request parameters.void
handleRequest(javax.servlet.http.HttpServletRequest request)
Parses the input stream and partitions the parsed items into a set of form fields and a set of file items.void
rollback()
Cleans up when a problem occurs during request processing.void
setMapping(org.apache.struts.action.ActionMapping mapping)
Sets the action mapping with which this handler is associated.void
setServlet(org.apache.struts.action.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.- See Also:
- Constant Field Values
-
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.- See Also:
- Constant Field Values
-
log
protected static org.apache.commons.logging.Log log
Commons Logging instance.
-
-
Method Detail
-
getServlet
public org.apache.struts.action.ActionServlet getServlet()
Retrieves the servlet with which this handler is associated.- Specified by:
getServlet
in interfaceorg.apache.struts.upload.MultipartRequestHandler
- Returns:
- The associated servlet.
-
setServlet
public void setServlet(org.apache.struts.action.ActionServlet servlet)
Sets the servlet with which this handler is associated.- Specified by:
setServlet
in interfaceorg.apache.struts.upload.MultipartRequestHandler
- Parameters:
servlet
- The associated servlet.
-
getMapping
public org.apache.struts.action.ActionMapping getMapping()
Retrieves the action mapping with which this handler is associated.- Specified by:
getMapping
in interfaceorg.apache.struts.upload.MultipartRequestHandler
- Returns:
- The associated action mapping.
-
setMapping
public void setMapping(org.apache.struts.action.ActionMapping mapping)
Sets the action mapping with which this handler is associated.- Specified by:
setMapping
in interfaceorg.apache.struts.upload.MultipartRequestHandler
- Parameters:
mapping
- The associated action mapping.
-
handleRequest
public void handleRequest(javax.servlet.http.HttpServletRequest request) throws javax.servlet.ServletException
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 FileUploadFileItem
instances to StrutsFormFile
instances.- Specified by:
handleRequest
in interfaceorg.apache.struts.upload.MultipartRequestHandler
- Parameters:
request
- The multipart request to be processed.- Throws:
javax.servlet.ServletException
- if an unrecoverable error occurs.
-
getTextElements
public Hashtable getTextElements()
Returns a hash table containing the text (that is, non-file) request parameters.- Specified by:
getTextElements
in interfaceorg.apache.struts.upload.MultipartRequestHandler
- Returns:
- The text request parameters.
-
getFileElements
public Hashtable getFileElements()
Returns a hash table containing the file (that is, non-text) request parameters.- Specified by:
getFileElements
in interfaceorg.apache.struts.upload.MultipartRequestHandler
- Returns:
- The file request parameters.
-
getAllElements
public Hashtable getAllElements()
Returns a hash table containing both text and file request parameters.- Specified by:
getAllElements
in interfaceorg.apache.struts.upload.MultipartRequestHandler
- Returns:
- The text and file request parameters.
-
rollback
public void rollback()
Cleans up when a problem occurs during request processing.- Specified by:
rollback
in interfaceorg.apache.struts.upload.MultipartRequestHandler
-
finish
public void finish()
Cleans up at the end of a request.- Specified by:
finish
in interfaceorg.apache.struts.upload.MultipartRequestHandler
-
getSizeMax
protected long getSizeMax(org.apache.struts.config.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(org.apache.struts.config.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.
-
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.
-
getRepositoryPath
protected String getRepositoryPath(org.apache.struts.config.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.- A temp dir explicitly defined either using the
tempDir
servlet init param, or thetempDir
attribute of the <controller> element in the Struts config file. - The container-specified temp dir, obtained from the
javax.servlet.context.tempdir
servlet context attribute. - The temp dir specified by the
java.io.tmpdir
system property.
(/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.
- A temp dir explicitly defined either using the
-
addTextParameter
protected void addTextParameter(javax.servlet.http.HttpServletRequest request, org.apache.commons.fileupload.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.
-
addFileParameter
protected void addFileParameter(org.apache.commons.fileupload.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.
-
-