Interface UploadService

All Known Implementing Classes:
DefaultUploadService

public interface UploadService

This service handles parsing multipart/form-data POST requests and turning them into form fields and uploaded files. This can be either performed automatically by the org.apache.fulcrum.parser.ParameterParser or manually by a user defined org.apache.turbine.modules.Action.

Version:
$Id$
Author:
Rafal Krzewski, Daniel Rall
  • Field Details

    • ROLE

      static final String ROLE
      Avalon Identifier
    • CONTENT_TYPE

      static final String CONTENT_TYPE
      HTTP header.
      See Also:
    • CONTENT_DISPOSITION

      static final String CONTENT_DISPOSITION
      HTTP header.
      See Also:
    • MULTIPART

      static final String MULTIPART
      HTTP header base type.
      See Also:
    • FORM_DATA

      static final String FORM_DATA
      HTTP header base type modifier.
      See Also:
    • MIXED

      static final String MIXED
      HTTP header base type modifier.
      See Also:
    • MULTIPART_FORM_DATA

      static final String MULTIPART_FORM_DATA
      HTTP header.
      See Also:
    • MULTIPART_MIXED

      static final String MULTIPART_MIXED
      HTTP header.
      See Also:
    • REPOSITORY_PARAMETER

      static final String REPOSITORY_PARAMETER
      The request parameter name for overriding 'repository' property (path).
      See Also:
    • REPOSITORY_KEY

      static final String REPOSITORY_KEY
      The key in UploadService properties in TurbineResources.properties 'repository' property.
      See Also:
    • REPOSITORY_DEFAULT

      static final String REPOSITORY_DEFAULT

      The default value of 'repository' property (.). This is the directory where uploaded files will get stored temporarily. Note that "." is whatever the servlet container chooses to be it's 'current directory'.

      See Also:
    • SIZE_MAX_KEY

      static final String SIZE_MAX_KEY
      w The key in UploadService properties in service configuration 'sizeMax' property.
      See Also:
    • SIZE_MAX_DEFAULT

      static final int SIZE_MAX_DEFAULT

      The default value of 'sizMax' property (1 megabyte = 1048576 bytes). This is the maximum size of POST request that will be parsed by the uploader. If you need to set specific limits for your users, set this property to the largest limit value, and use an action + no auto upload to enforce limits.

      See Also:
    • SIZE_THRESHOLD_KEY

      static final String SIZE_THRESHOLD_KEY
      The key in UploadService properties in TurbineResources.properties 'sizeThreshold' property.
      See Also:
    • SIZE_THRESHOLD_DEFAULT

      static final int SIZE_THRESHOLD_DEFAULT

      The default value of 'sizeThreshold' property (10 kilobytes = 10240 bytes). This is the maximum size of a POST request that will have it's components stored temporarily in memory, instead of disk.

      See Also:
    • HEADER_ENCODING_KEY

      static final String HEADER_ENCODING_KEY
      The key in UploadService properties in TurbineResources.properties 'headerEncoding' property.
      See Also:
    • HEADER_ENCODING_DEFAULT

      static final String HEADER_ENCODING_DEFAULT

      The default value of 'headerEncoding' property (.). The value has been decided by copying from DiskFileItem class

      See Also:
  • Method Details

    • parseRequest

      List<org.apache.commons.fileupload2.core.FileItem> parseRequest(jakarta.servlet.http.HttpServletRequest req) throws org.apache.avalon.framework.service.ServiceException

      Parses a RFC 1867 compliant multipart/form-data stream.

      Parameters:
      req - The servlet request to be parsed.
      Returns:
      list of file items
      Throws:
      org.apache.avalon.framework.service.ServiceException - Problems reading/parsing the request or storing the uploaded file(s).
    • parseRequest

      List<org.apache.commons.fileupload2.core.FileItem> parseRequest(jakarta.servlet.http.HttpServletRequest req, String path) throws org.apache.avalon.framework.service.ServiceException

      Parses a RFC 1867 compliant multipart/form-data stream.

      Parameters:
      req - The servlet request to be parsed.
      path - The location where the files should be stored.
      Returns:
      List of FileItem parts
      Throws:
      org.apache.avalon.framework.service.ServiceException - Problems reading/parsing the request or storing the uploaded file(s).
    • parseRequest

      List<org.apache.commons.fileupload2.core.FileItem> parseRequest(jakarta.servlet.http.HttpServletRequest req, int sizeThreshold, int sizeMax, String path) throws org.apache.avalon.framework.service.ServiceException

      Parses a RFC 1867 compliant multipart/form-data stream.

      Parameters:
      req - The servlet request to be parsed.
      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:
      List of FileItem parts
      Throws:
      org.apache.avalon.framework.service.ServiceException - Problems reading/parsing the request or storing the uploaded file(s).
    • getItemIterator

      org.apache.commons.fileupload2.core.FileItemInputIterator getItemIterator(jakarta.servlet.http.HttpServletRequest req) throws org.apache.avalon.framework.service.ServiceException
      Processes an RFC 1867 compliant multipart/form-data stream.
      Parameters:
      req - The servlet request to be parsed.
      Returns:
      An iterator to instances of FileItemStream parsed from the request, in the order that they were transmitted.
      Throws:
      org.apache.avalon.framework.service.ServiceException - if there are problems reading/parsing the request or storing files. This may also be a network error while communicating with the client or a problem while storing the uploaded content.
    • getSizeMax

      long getSizeMax()

      Retrieves the value of size.max property of the UploadService.

      Returns:
      The maximum upload size.
    • getSizeThreshold

      long getSizeThreshold()

      Retrieves the value of size.threshold property of UploadService.

      Returns:
      The threshold beyond which files are written directly to disk.
    • getRepository

      String getRepository()

      Retrieves the value of the repository property of UploadService.

      Returns:
      The repository.
    • getHeaderEncoding

      String getHeaderEncoding()

      Retrieves the value of the headerEncoding property of UploadService.

      Returns:
      Returns the headerEncoding.
    • isMultipart

      boolean isMultipart(jakarta.servlet.http.HttpServletRequest req)
      Utility method that determines whether the request contains multipart content.
      Parameters:
      req - The servlet request to be evaluated. Must be non-null.
      Returns:
      true if the request is multipart; false otherwise.
    • getFileSizeMax

      long getFileSizeMax()
      The maximum allowed size of a sinlge file upload
      Returns:
      the maximum size