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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!