读书人

Struts2(12):Struts2的下传上载续

发布时间: 2012-09-20 09:36:50 作者: rapoo

Struts2(12):Struts2的上传下载续

使用Struts2结束common的fileupload和io两个包进行上传下载开发

?

首先编写upload.jsp

?

配置struts.xml文件

?如何上传指定个数的文件?如同时上传3个,则需要修改action类,使用集合类来支持

package com.test.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;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 String username;private String password;private List<File> file;//下面两个变量是文件名与文件类型,Struts2会自动为以下两变量赋值private List<String> fileFileName;private List<String> fileContentType;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public List<File> getFile() {return file;}public void setFile(List<File> file) {this.file = file;}public List<String> getFileFileName() {return fileFileName;}public void setFileFileName(List<String> fileFileName) {this.fileFileName = fileFileName;}public List<String> getFileContentType() {return fileContentType;}public void setFileContentType(List<String> fileContentType) {this.fileContentType = fileContentType;}public String execute() throws Exception {for(int i = 0;i < file.size(); i++){InputStream is = new FileInputStream(file.get(i));String root = ServletActionContext.getRequest().getRealPath("upload");File destFile = new File(root,this.getFileFileName().get(i));OutputStream os = new FileOutputStream(destFile);byte[] buffer = new byte[400];int length = 0;while((length= is.read(buffer)) > 0){os.write(buffer, 0, length);}is.close();os.close();}return SUCCESS;}}

?

读书人网 >软件架构设计

热点推荐