Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.struts.upload
Class CommonsMultipartRequestHandler

    java.lang.Object
      |
      +--org.apache.struts.upload.CommonsMultipartRequestHandler

All Implemented Interfaces:
  MultipartRequestHandler

public class CommonsMultipartRequestHandler
extends java.lang.Object
implements MultipartRequestHandler

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

Since:
  Struts 1.1
Version:
  $Revision: 1.1 $ $Date: 2003-08-22 09:34:00 +0100 (Fri, 22 Aug 2003) $
Author:
  Martin Cooper

Nested Class Summary
`(package private) static class` | `CommonsMultipartRequestHandler.CommonsFormFile` This class implements the Struts `FormFile` interface by wrapping the Commons FileUpload `FileItem` interface.

Field Summary
`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.
`private java.util.Hashtable` | `elementsAll` The combined text and file request parameters.
`private java.util.Hashtable` | `elementsFile` The file request parameters.
`private java.util.Hashtable` | `elementsText` The text request parameters.
`protected static org.apache.commons.logging.Log` | `log` Commons Logging instance.
`private ActionMapping` | `mapping` The action mapping with which this handler is associated.
`private ActionServlet` | `servlet` The servlet with which this handler is associated.

Fields inherited from interface org.apache.struts.upload.MultipartRequestHandler
`ATTRIBUTE_MAX_LENGTH_EXCEEDED`

Constructor Summary
`CommonsMultipartRequestHandler()`

Method Summary
`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(java.lang.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.
`java.util.Hashtable` | `getAllElements()` Returns a hash table containing both text and file request parameters.
`java.util.Hashtable` | `getFileElements()` Returns a hash table containing the file (that is, non-text) request parameters.
`ActionMapping` | `getMapping()` Retrieves the action mapping with which this handler is associated.
`protected java.lang.String` | `getRepositoryPath(ModuleConfig mc)` Returns the path to the temporary directory to be used for uploaded files which are written to disk.
`ActionServlet` | `getServlet()` Retrieves the servlet with which this handler is associated.
`protected long` | `getSizeMax(ModuleConfig mc)` Returns the maximum allowable size, in bytes, of an uploaded file.
`protected long` | `getSizeThreshold(ModuleConfig mc)` Returns the size threshold which determines whether an uploaded file will be written to disk or cached in memory.
`java.util.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(ActionMapping mapping)` Sets the action mapping with which this handler is associated.
`void` | `setServlet(ActionServlet servlet)` Sets the servlet with which this handler is associated.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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.

### elementsAll

    private java.util.Hashtable elementsAll

  The combined text and file request parameters.

### elementsFile

    private java.util.Hashtable elementsFile

  The file request parameters.

### elementsText

    private java.util.Hashtable elementsText

  The text request parameters.

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

Constructor Detail

### CommonsMultipartRequestHandler

    public CommonsMultipartRequestHandler()

Method Detail

### getServlet

    public ActionServlet getServlet()

  Retrieves the servlet with which this handler is associated.

  Specified by:
    `getServlet` in interface `MultipartRequestHandler`
  Returns:
    The associated servlet.

### setServlet

    public void setServlet(ActionServlet servlet)

  Sets the servlet with which this handler is associated.

  Specified by:
    `setServlet` in interface `MultipartRequestHandler`
  Parameters:
    `servlet` - The associated servlet.

### getMapping

    public ActionMapping getMapping()

  Retrieves the action mapping with which this handler is associated.

  Specified by:
    `getMapping` in interface `MultipartRequestHandler`
  Returns:
    The associated action mapping.

### setMapping

    public void setMapping(ActionMapping mapping)

  Sets the action mapping with which this handler is associated.

  Specified by:
    `setMapping` in interface `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 FileUpload `FileItem` instances to Struts `FormFile` instances.

  Specified by:
    `handleRequest` in interface `MultipartRequestHandler`
  Parameters:
    `request` - The multipart request to be processed.
  Throws:
    `javax.servlet.ServletException` - if an unrecoverable error occurs.

### getTextElements

    public java.util.Hashtable getTextElements()

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

  Specified by:
    `getTextElements` in interface `MultipartRequestHandler`
  Returns:
    The text request parameters.

### getFileElements

    public java.util.Hashtable getFileElements()

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

  Specified by:
    `getFileElements` in interface `MultipartRequestHandler`
  Returns:
    The file request parameters.
  See Also:
    `FormFile`

### getAllElements

    public java.util.Hashtable getAllElements()

  Returns a hash table containing both text and file request parameters.

  Specified by:
    `getAllElements` in interface `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 interface `MultipartRequestHandler`

### finish

    public void finish()

  Cleans up at the end of a request.

  Specified by:
    `finish` in interface `MultipartRequestHandler`

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

### convertSizeToBytes

    protected long convertSizeToBytes(java.lang.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 java.lang.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.
  (/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.

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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2003 - Apache Software Foundation