|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.opensymphony.xwork2.interceptor.AbstractInterceptor
org.apache.struts2.interceptor.FileUploadInterceptor
public class FileUploadInterceptor
Interceptor that is based off of
MultiPartRequestWrapper
, which is automatically applied for any request that
includes a file. It adds the following parameters, where [File Name] is the name given to the file uploaded by the
HTML form:
ValidationAware
.
These error messages are based on several i18n values stored in struts-messages.properties, a default i18n file
processed for all i18n requests. You can override the text of these messages by providing text for the following
keys:
<action name="doUpload" class="com.example.UploadAction"> <interceptor-ref name="fileUpload"/> <interceptor-ref name="basicStack"/> <result name="success">good_result.jsp</result> </action>You must set the encoding to
multipart/form-data
in the form where the user selects the file to upload.
<s:form action="doUpload" method="post" enctype="multipart/form-data"> <s:file name="upload" label="File"/> <s:submit/> </s:form>And then in your action code you'll have access to the File object if you provide setters according to the naming convention documented in the start.
package com.example; import java.io.File; import com.opensymphony.xwork2.ActionSupport; public UploadAction extends ActionSupport { private File file; private String contentType; private String filename; public void setUpload(File file) { this.file = file; } public void setUploadContentType(String contentType) { this.contentType = contentType; } public void setUploadFileName(String filename) { this.filename = filename; } public String execute() { //... return SUCCESS; } }
Field Summary | |
---|---|
protected Set<String> |
allowedExtensionsSet
|
protected Set<String> |
allowedTypesSet
|
private static String |
DEFAULT_MESSAGE
|
protected static Logger |
LOG
|
protected Long |
maximumSize
|
private static long |
serialVersionUID
|
protected boolean |
useActionMessageBundle
|
Constructor Summary | |
---|---|
FileUploadInterceptor()
|
Method Summary | |
---|---|
protected boolean |
acceptFile(Object action,
File file,
String filename,
String contentType,
String inputName,
ValidationAware validation,
Locale locale)
Override for added functionality. |
private static boolean |
containsItem(Collection<String> itemCollection,
String item)
|
private String |
getTextMessage(Object action,
String messageKey,
Object[] args,
Locale locale)
|
private String |
getTextMessage(String messageKey,
Object[] args,
Locale locale)
|
private static boolean |
hasAllowedExtension(Collection<String> extensionCollection,
String filename)
|
String |
intercept(ActionInvocation invocation)
Override to handle interception |
private static boolean |
isNonEmpty(Object[] objArray)
|
void |
setAllowedExtensions(String allowedExtensions)
Sets the allowed extensions |
void |
setAllowedTypes(String allowedTypes)
Sets the allowed mimetypes |
void |
setMaximumSize(Long maximumSize)
Sets the maximum size of an uploaded file |
void |
setUseActionMessageBundle(String value)
|
Methods inherited from class com.opensymphony.xwork2.interceptor.AbstractInterceptor |
---|
destroy, init |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final long serialVersionUID
protected static final Logger LOG
private static final String DEFAULT_MESSAGE
protected boolean useActionMessageBundle
protected Long maximumSize
protected Set<String> allowedTypesSet
protected Set<String> allowedExtensionsSet
Constructor Detail |
---|
public FileUploadInterceptor()
Method Detail |
---|
public void setUseActionMessageBundle(String value)
public void setAllowedExtensions(String allowedExtensions)
allowedExtensions
- A comma-delimited list of extensionspublic void setAllowedTypes(String allowedTypes)
allowedTypes
- A comma-delimited list of typespublic void setMaximumSize(Long maximumSize)
maximumSize
- The maximum size in bytespublic String intercept(ActionInvocation invocation) throws Exception
AbstractInterceptor
intercept
in interface Interceptor
intercept
in class AbstractInterceptor
invocation
- the action invocation
ActionInvocation.invoke()
, or from the interceptor itself.
Exception
- any system-level error, as defined in Action.execute()
.protected boolean acceptFile(Object action, File file, String filename, String contentType, String inputName, ValidationAware validation, Locale locale)
action
- - uploading action for message retrieval.file
- - proposed upload file.contentType
- - contentType of the file.inputName
- - inputName of the file.validation
- - Non-null ValidationAware if the action implements ValidationAware, allowing for better
logging.locale
-
private static boolean hasAllowedExtension(Collection<String> extensionCollection, String filename)
extensionCollection
- - Collection of extensions (all lowercase).filename
- - filename to check.
private static boolean containsItem(Collection<String> itemCollection, String item)
itemCollection
- - Collection of string items (all lowercase).item
- - Item to search for.
private static boolean isNonEmpty(Object[] objArray)
private String getTextMessage(String messageKey, Object[] args, Locale locale)
private String getTextMessage(Object action, String messageKey, Object[] args, Locale locale)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |