|
||||||||||
| 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 bytes
public String intercept(ActionInvocation invocation)
throws Exception
AbstractInterceptor
intercept in interface Interceptorintercept in class AbstractInterceptorinvocation - 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 | |||||||||