Class DefaultUploadService
- All Implemented Interfaces:
- org.apache.avalon.framework.activity.Initializable,- org.apache.avalon.framework.configuration.Configurable,- org.apache.avalon.framework.context.Contextualizable,- org.apache.avalon.framework.logger.LogEnabled,- UploadService
 This class is an implementation of UploadService.
 
 Files will be stored in temporary disk storage on in memory, depending on request size,
 and will be available from the
 org.apache.fulcrum.util.parser.ParameterParser as
 org.apache.commons.fileupload.FileItem objects.
 
 This implementation of UploadService handles multiple files per single html
 form, sent using multipart/form-data encoding type, as specified by RFC 1867. Use
 org.apache.fulcrum.parser.ParameterParser#getFileItems(String) to acquire
 an array of org.apache.commons.fileupload.FileItem objects associated with
 given html form.
- Version:
- $Id$
- Author:
- Rafal Krzewski, Daniel Rall, Jason van Zyl
- 
Field SummaryFields inherited from interface org.apache.fulcrum.upload.UploadServiceCONTENT_DISPOSITION, CONTENT_TYPE, FORM_DATA, HEADER_ENCODING_DEFAULT, HEADER_ENCODING_KEY, MIXED, MULTIPART, MULTIPART_FORM_DATA, MULTIPART_MIXED, REPOSITORY_DEFAULT, REPOSITORY_KEY, REPOSITORY_PARAMETER, ROLE, SIZE_MAX_DEFAULT, SIZE_MAX_KEY, SIZE_THRESHOLD_DEFAULT, SIZE_THRESHOLD_KEY
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidconfigure(org.apache.avalon.framework.configuration.Configuration conf) Avalon component lifecycle methodvoidcontextualize(org.apache.avalon.framework.context.Context context) Avalon component lifecycle methodorg.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUploadgetDefaultFileUpload(jakarta.servlet.http.HttpServletRequest req, org.apache.commons.fileupload2.core.DiskFileItemFactory factory) Follows RFC 1867longThe maximum number of files allowed per request.longThe maximum allowed size of a sinlge file uploadRetrieves the value of theheaderEncodingproperty ofUploadService.org.apache.commons.fileupload2.core.FileItemInputIteratorgetItemIterator(jakarta.servlet.http.HttpServletRequest req) Processes an RFC 1867 compliantmultipart/form-datastream.The location used to temporarily store files that are larger than the size threshold.longThe maximum allowed upload sizelongThe threshold beyond which files are written directly to disk.voidAvalon component lifecycle method Initializes the service.booleanisMultipart(jakarta.servlet.http.HttpServletRequest req) Utility method that determines whether the request contains multipart content.List<org.apache.commons.fileupload2.core.FileItem> parseRequest(jakarta.servlet.http.HttpServletRequest req) Parses a RFC 1867 compliantmultipart/form-datastream.List<org.apache.commons.fileupload2.core.FileItem> parseRequest(jakarta.servlet.http.HttpServletRequest req, int sizeThreshold, int sizeMax, String path) Parses a RFC 1867 compliantmultipart/form-datastream.protected List<org.apache.commons.fileupload2.core.FileItem> parseRequest(jakarta.servlet.http.HttpServletRequest req, int sizeMax, org.apache.commons.fileupload2.core.DiskFileItemFactory factory) Parses a RFC 1867 compliantmultipart/form-datastream.List<org.apache.commons.fileupload2.core.FileItem> parseRequest(jakarta.servlet.http.HttpServletRequest req, String path) Parses a RFC 1867 compliantmultipart/form-datastream.voidsetFileCountMax(int fileCountMax) voidsetFileSizeMax(long fileSizeMax) Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabledenableLogging, getLogger, setupLogger, setupLogger, setupLogger
- 
Constructor Details- 
DefaultUploadServicepublic DefaultUploadService()
 
- 
- 
Method Details- 
getSizeMaxpublic long getSizeMax()The maximum allowed upload size- Specified by:
- getSizeMaxin interface- UploadService
- Returns:
- The maximum upload size.
 
- 
getSizeThresholdpublic long getSizeThreshold()The threshold beyond which files are written directly to disk.- Specified by:
- getSizeThresholdin interface- UploadService
- Returns:
- The threshold beyond which files are written directly to disk.
 
- 
getRepositoryThe location used to temporarily store files that are larger than the size threshold.- Specified by:
- getRepositoryin interface- UploadService
- Returns:
- The repository.
 
- 
getHeaderEncodingDescription copied from interface:UploadServiceRetrieves the value of the headerEncodingproperty ofUploadService.- Specified by:
- getHeaderEncodingin interface- UploadService
- Returns:
- Returns the headerEncoding.
 
- 
getDefaultFileUploadpublic org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload getDefaultFileUpload(jakarta.servlet.http.HttpServletRequest req, org.apache.commons.fileupload2.core.DiskFileItemFactory factory) Follows RFC 1867- Parameters:
- req-
- factory-
- Returns:
- a spec compliant servlet
- Throws:
- org.apache.avalon.framework.service.ServiceException
 
- 
parseRequestpublic 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-datastream.- Specified by:
- parseRequestin interface- UploadService
- 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).
 
- 
parseRequestpublic 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-datastream.- Specified by:
- parseRequestin interface- UploadService
- 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).
 
- 
parseRequestpublic 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-datastream.- Specified by:
- parseRequestin interface- UploadService
- 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 file items
- Throws:
- org.apache.avalon.framework.service.ServiceException- Problems reading/parsing the request or storing the uploaded file(s).
 
- 
parseRequestprotected List<org.apache.commons.fileupload2.core.FileItem> parseRequest(jakarta.servlet.http.HttpServletRequest req, int sizeMax, org.apache.commons.fileupload2.core.DiskFileItemFactory factory) throws org.apache.avalon.framework.service.ServiceException Parses a RFC 1867 compliant multipart/form-datastream.- Parameters:
- req- The servlet request to be parsed.
- sizeMax- the maximum allowed upload size in bytes
- factory- the file item factory to use
- Returns:
- list of file items
- Throws:
- org.apache.avalon.framework.service.ServiceException- Problems reading/parsing the request or storing the uploaded file(s).
 
- 
getItemIteratorpublic org.apache.commons.fileupload2.core.FileItemInputIterator getItemIterator(jakarta.servlet.http.HttpServletRequest req) throws org.apache.avalon.framework.service.ServiceException Processes an RFC 1867 compliantmultipart/form-datastream.- Specified by:
- getItemIteratorin interface- UploadService
- Parameters:
- req- The servlet request to be parsed.
- Returns:
- An iterator to instances of FileItemStreamparsed 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.
 
- 
isMultipartpublic boolean isMultipart(jakarta.servlet.http.HttpServletRequest req) Utility method that determines whether the request contains multipart content.- Specified by:
- isMultipartin interface- UploadService
- Parameters:
- req- The servlet request to be evaluated. Must be non-null.
- Returns:
- trueif the request is multipart;- falseotherwise.
 
- 
configurepublic void configure(org.apache.avalon.framework.configuration.Configuration conf) Avalon component lifecycle method- Specified by:
- configurein interface- org.apache.avalon.framework.configuration.Configurable
 
- 
initializeAvalon component lifecycle method Initializes the service. This method processes the repository path, to make it relative to the web application root, if necessary- Specified by:
- initializein interface- org.apache.avalon.framework.activity.Initializable
- Throws:
- Exception
 
- 
contextualizepublic void contextualize(org.apache.avalon.framework.context.Context context) throws org.apache.avalon.framework.context.ContextException Avalon component lifecycle method- Specified by:
- contextualizein interface- org.apache.avalon.framework.context.Contextualizable
- Throws:
- org.apache.avalon.framework.context.ContextException
 
- 
getFileSizeMaxpublic long getFileSizeMax()The maximum allowed size of a sinlge file upload- Specified by:
- getFileSizeMaxin interface- UploadService
- Returns:
- the maximum size
 
- 
setFileSizeMaxpublic void setFileSizeMax(long fileSizeMax) 
- 
getFileCountMaxpublic long getFileCountMax()The maximum number of files allowed per request.- Returns:
- maximum number of files allowed per request
 
- 
setFileCountMaxpublic void setFileCountMax(int fileCountMax) 
 
-