public class CommonsPortletMultipartResolver extends CommonsFileUploadSupport implements PortletMultipartResolver, PortletContextAware
PortletMultipartResolver
implementation for
Apache Commons FileUpload 1.2 or above.
Provides "maxUploadSize", "maxInMemorySize" and "defaultEncoding" settings as bean properties (inherited from
CommonsFileUploadSupport
). See corresponding PortletFileUpload / DiskFileItemFactory properties ("sizeMax",
"sizeThreshold", "headerEncoding") for details in terms of defaults and accepted values.
Saves temporary files to the portlet container's temporary directory. Needs to be initialized either by an application context or via the constructor that takes a PortletContext (for standalone usage).
CommonsPortletMultipartResolver(javax.portlet.PortletContext)
,
setResolveLazily(boolean)
,
CommonsMultipartResolver
,
PortletFileUpload
,
DiskFileItemFactory
CommonsFileUploadSupport.MultipartParsingResult
logger
Constructor and Description |
---|
CommonsPortletMultipartResolver()
Constructor for use as bean.
|
CommonsPortletMultipartResolver(javax.portlet.PortletContext portletContext)
Constructor for standalone usage.
|
Modifier and Type | Method and Description |
---|---|
void |
cleanupMultipart(MultipartActionRequest request)
Cleanup any resources used for the multipart handling, such as storage for any uploaded file(s).
|
void |
cleanupMultipart(MultipartResourceRequest request)
Cleanup any resources used for the multipart handling, such as storage for any uploaded file(s).
|
protected String |
determineEncoding(javax.portlet.ActionRequest request)
Determine the encoding for the given request.
|
protected String |
determineEncoding(javax.portlet.ResourceRequest request)
Determine the encoding for the given request.
|
boolean |
isMultipart(javax.portlet.ActionRequest request)
Determine if the given request contains multipart content.
|
boolean |
isMultipart(javax.portlet.ResourceRequest request)
Determine if the given request contains multipart content.
|
protected org.apache.commons.fileupload.FileUpload |
newFileUpload(org.apache.commons.fileupload.FileItemFactory fileItemFactory)
Initialize the underlying
org.apache.commons.fileupload.portlet.PortletFileUpload instance. |
protected CommonsFileUploadSupport.MultipartParsingResult |
parseRequest(javax.portlet.ActionRequest request)
Parse the given portlet request, resolving its multipart elements.
|
protected CommonsFileUploadSupport.MultipartParsingResult |
parseRequest(javax.portlet.ResourceRequest request)
Parse the given portlet request, resolving its multipart elements.
|
MultipartActionRequest |
resolveMultipart(javax.portlet.ActionRequest request)
Parse the given portlet request into multipart files and parameters, and wrap the request inside a
MultipartActionRequest object that provides access to file descriptors and makes contained parameters accessible
via the standard PortletRequest methods.
|
MultipartResourceRequest |
resolveMultipart(javax.portlet.ResourceRequest request)
Parse the given portlet request into multipart files and parameters, and wrap the request inside a
MultipartResourceRequest object that provides access to file descriptors and makes contained parameters
accessible via the standard PortletRequest methods.
|
void |
setPortletContext(javax.portlet.PortletContext portletContext)
Set the PortletContext that this object runs in.
|
void |
setResolveLazily(boolean resolveLazily)
Set whether to resolve the multipart request lazily at the time of file or parameter access.
|
cleanupFileItems, createMultipartFile, getDefaultEncoding, getFileItemFactory, getFileUpload, isUploadTempDirSpecified, newFileItemFactory, parseFileItems, prepareFileUpload, setDefaultEncoding, setMaxInMemorySize, setMaxUploadSize, setMaxUploadSizePerFile, setPreserveFilename, setUploadTempDir
public CommonsPortletMultipartResolver()
public CommonsPortletMultipartResolver(javax.portlet.PortletContext portletContext)
portletContext
- the PortletContext to usepublic void cleanupMultipart(MultipartActionRequest request)
PortletMultipartResolver
cleanupMultipart
in interface PortletMultipartResolver
request
- the request to cleanup resources forpublic void cleanupMultipart(MultipartResourceRequest request)
PortletMultipartResolver
cleanupMultipart
in interface PortletMultipartResolver
request
- the request to cleanup resources forpublic boolean isMultipart(javax.portlet.ActionRequest request)
PortletMultipartResolver
Will typically check for content type"multipart/form-data
", but the actually accepted requests might
depend on the capabilities of the resolver implementation.
isMultipart
in interface PortletMultipartResolver
request
- the portlet request to be evaluatedpublic boolean isMultipart(javax.portlet.ResourceRequest request)
PortletMultipartResolver
Will typically check for content type"multipart/form-data
", but the actually accepted requests might
depend on the capabilities of the resolver implementation.
isMultipart
in interface PortletMultipartResolver
request
- the portlet request to be evaluatedpublic MultipartActionRequest resolveMultipart(javax.portlet.ActionRequest request) throws MultipartException
PortletMultipartResolver
resolveMultipart
in interface PortletMultipartResolver
request
- the portlet request to wrap (must be of a multipart content type)MultipartException
- if the portlet request is not multipart, or if
implementation-specific problems are encountered
(such as exceeding file size limits)MultipartRequest.getFile(java.lang.String)
,
MultipartRequest.getFileNames()
,
MultipartRequest.getFileMap()
,
PortletRequest.getParameter(java.lang.String)
,
PortletRequest.getParameterNames()
,
PortletRequest.getParameterMap()
public MultipartResourceRequest resolveMultipart(javax.portlet.ResourceRequest request) throws MultipartException
PortletMultipartResolver
resolveMultipart
in interface PortletMultipartResolver
request
- the portlet request to wrap (must be of a multipart content type)MultipartException
- if the portlet request is not multipart, or if
implementation-specific problems are encountered
(such as exceeding file size limits)MultipartRequest.getFile(java.lang.String)
,
MultipartRequest.getFileNames()
,
MultipartRequest.getFileMap()
,
PortletRequest.getParameter(java.lang.String)
,
PortletRequest.getParameterNames()
,
PortletRequest.getParameterMap()
public void setPortletContext(javax.portlet.PortletContext portletContext)
PortletContextAware
Invoked after population of normal bean properties but before an init callback like InitializingBean's afterPropertiesSet or a custom init-method. Invoked after ApplicationContextAware's setApplicationContext.
setPortletContext
in interface PortletContextAware
portletContext
- PortletContext object to be used by this objectpublic void setResolveLazily(boolean resolveLazily)
Default is "false", resolving the multipart elements immediately, throwing corresponding exceptions at the
time of the resolveMultipart(javax.portlet.ActionRequest)
call. Switch this to "true" for lazy multipart parsing, throwing parse
exceptions once the application attempts to obtain multipart files or parameters.
protected String determineEncoding(javax.portlet.ActionRequest request)
The default implementation checks the request encoding, falling back to the default encoding specified for this resolver.
request
- current portlet requestnull
)ClientDataRequest.getCharacterEncoding()
,
CommonsFileUploadSupport.setDefaultEncoding(java.lang.String)
protected String determineEncoding(javax.portlet.ResourceRequest request)
The default implementation checks the request encoding, falling back to the default encoding specified for this resolver.
request
- current portlet requestnull
)ClientDataRequest.getCharacterEncoding()
,
CommonsFileUploadSupport.setDefaultEncoding(java.lang.String)
protected org.apache.commons.fileupload.FileUpload newFileUpload(org.apache.commons.fileupload.FileItemFactory fileItemFactory)
org.apache.commons.fileupload.portlet.PortletFileUpload
instance. Can be
overridden to use a custom subclass, e.g. for testing purposes.newFileUpload
in class CommonsFileUploadSupport
protected CommonsFileUploadSupport.MultipartParsingResult parseRequest(javax.portlet.ActionRequest request) throws MultipartException
request
- the request to parseMultipartException
- if multipart resolution failed.protected CommonsFileUploadSupport.MultipartParsingResult parseRequest(javax.portlet.ResourceRequest request) throws MultipartException
request
- the request to parseMultipartException
- if multipart resolution failed.Copyright © 2019 Liferay, Inc.. All rights reserved.