Step 1
Create the Struts 2 Action class. In our example we have called it FileUploadAction.java
An example of an action to upload a file:
package uk.co.spltech.web.actions;
import com.opensymphony.xwork2.Action;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
/**
* Uploads a file using Struts 2
*
* @author Armindo Cachada
*/
public class FileUploadAction extends ActionSupport {
private static final long serialVersionUID = 12323232L;
private File file;
private String fileFileName;
private String fileContentType;
public String execute() {
return Action.SUCCESS;
}
public File getFile() {
return this.file;
}
public void setFile(File file) {
this.file = file;
}
public void setUpload(File file) {
this.file = file;
}
/**
* This method is called by the action.
* Here you can do whatever you want with the uploaded file
*/
public String upload() throws IOException {
File uploadedFile =this.getFile();
// you can do whatever you want with the file
return Action.SUCCESS;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
}
Step 2
Create the action in struts.xml
<action name="fileUpload" class="uk.co.spltech.web.actions.FileUploadAction" method="upload">
<result>/success.jsp </result>
<result type="error">/upload.jsp</result>
</action>
Step 3
Create the jsp. For example:
Please select the file you want to upload:
<s:form action="fileUpload" method="post" enctype="multipart/form-data" theme="simple">
<s:actionerror cssClass="errorMessage"/>
<s:fielderror cssClass="error"/>
<s:file name="upload" label="File"/>
<s:submit/>
</s:form>
Step 3
The default maximum file size that struts 2 allows you to upload is only 2 megabytes. You can increase this size by specifying in struts.properties the struts.multipart.maxSize. This value is in bytes.
For example:
struts.multipart.maxSize=20480
Finally you can download the code for this example here.
Note that I didn't include the required struts2 library files with the example.
The files you need are:
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-logging.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar
struts2-convention-plugin-2.1.6.jar
Click here to learn how to upload a file with Adobe Flex
2 comments:
Please include Flex code also.
You can find the information you need here: http://simplyolaf.blogspot.com/2009/07/uploading-file-with-flex-3-and-struts-2.html
Post a Comment