struts2單文件與多文件上傳
Struts2的單文件上傳與多文件上傳.
首先這個是html頁面內容:
單文件上傳:<br/>
<form action="fileUpload" method="post" enctype="multipart/form-data">
username:<input type="text" name="username"/><br/>
<input type="file" name="file"/><br/>
<input type="submit"/>
</form>
多文件上傳:<br/>
<form action="mulFileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="files"/><br/>
<input type="file" name="files"/><br/>
<input type="file" name="files"/><br/>
<input type="submit"/>
</form>
然后是struts action文件代碼:
package com.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private String username;
private File file;
private String fileFileName; //名字固定的 file與file相同 FileName固定
private String fileContentType; //名字固定的 file與file線條 ContentType固定
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
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 fileUpload() throws Exception {
//設置上傳路徑-----------真實的文件路徑.如:c://tomcat//webapps//upload
String //root=ServletActionContext.getRequest().getRealPath("/upload"); //該方法在2.1之前使用
root=ServletActionContext.getServletContext().getRealPath("/upload");
//輸入
InputStream is=new FileInputStream(file);
//設置文件存放的路徑與名字
File destFile=new File(root, fileFileName);
//程序先會將文件放置到臨時目錄,然后從臨時目錄轉移到指定目錄
//如果臨時目錄不存在將使用環境變量所指定的目錄,如:...tomcat/work ....下面
//通過struts.properties -->struts.multipart.saveDir 可以設置臨時目錄
//如:struts.multipart.saveDir=d:/temp
//輸出文件
OutputStream os=new FileOutputStream(destFile);
//每次傳輸的字節
byte[] buffer=new byte[400];
//按字節讀取文件的長度
int length=0;
//如果沒有讀取到內容將返回-1
while((length=is.read(buffer))!=-1){
os.write(buffer,0,length);
}
//關閉
is.close();
return SUCCESS;
//如果出錯了將返回INPUT
}
public List<File> getFiles() {
return files;
}
public void setFiles(List<File> files) {
this.files = files;
}
public List<String> getFilesFileName() {
return filesFileName;
}
public void setFilesFileName(List<String> filesFileName) {
this.filesFileName = filesFileName;
}
public List<String> getFilesContentType() {
return filesContentType;
}
public void setFilesContentType(List<String> filesContentType) {
this.filesContentType = filesContentType;
}
//前面為get/set方法
private List<File> files; //也可用File[] files
private List<String> filesFileName;
private List<String> filesContentType;
/*
* 多文件上傳
*/
public String mulFileUpload(){
for (int i = 0; i < files.size(); i++) {
InputStream is=null;
try {
is=new FileInputStream(files.get(i));
String root=ServletActionContext.getServletContext().getRealPath("/upload");
File destFile=new File(root,filesFileName.get(i));
OutputStream os=new FileOutputStream(destFile);
byte[] buffer=new byte[400];
int length=0;
while((length=is.read(buffer))!=-1){
os.write(buffer,0,length);
}
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return SUCCESS;
}
}
然后是struts.xml 配置內容:
<!-- 單文件上傳 -->
<action name="fileUpload" class="com.action.UploadAction" method="fileUpload">
<result name="success">fileuploadresult.jsp</result>
<result name="input">fileuploaderror.jsp</result>
</action>
<!-- 多文件上傳 -->
<action name="mulFileUpload" class="com.action.UploadAction" method="mulFileUpload">
<result name="success">fileuploadresult.jsp</result>
<result name="input">fileuploaderror.jsp</result>
</action>





本文地址:http://www.zhjie.net/struts2-single-file-and-multi-file-upload.htm
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!