struts2多个文件上传示例

andylance 贡献于2013-02-28

作者 HAIFANG  创建于2012-03-26 09:30:00   修改者HAIFANG  修改于2012-03-26 09:31:00字数3434

文档摘要:思路如下:多个文件上传,需要注入多个文件对象中,所以Action中定义多个文件,因此是定义文件数组。在这个实例中,我们应用List来实现。其实,在上传文件,无论是单个文件还是多个文件,就是从上传的临时文件或文件组(循环)读到本地中。因此,java的io基础是关键。遇到文件的读写,发现io流基础不牢固,回头又重新看了马士兵的io流并实践io流小例子。
关键词:

上篇博客实现的是单个文件上传,这次实现多个文件上传。其中命名规范跟上篇博客一样。 思路如下:多个文件上传,需要注入多个文件对象中,所以Action中定义多个文件,因此是定义文件数组。在这个实例中,我们应用List来实现。 其实,在上传文件,无论是单个文件还是多个文件,就是从上传的临时文件或文件组(循环)读到本地中。 因此,java的io基础是关键。遇到文件的读写,发现io流基础不牢固,回头又重新看了马士兵的io流并实践io流小例子。其中io流的总结参见博客《Java IO流分析整理》 在多文件上传中,利用缓冲流进行写入文件中。实例如下: package com.upload; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.util.List; import java.util.Map; import javassist.bytecode.Descriptor.Iterator; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; /* * 多文件上传 */ public class MultiUpload extends ActionSupport { private List file; private List fileFileName; private List fileContentType; //每个文件的大小 private Long maximumSize; //文件的类型 private String allowedTypes; public Long getMaximumSize() { return maximumSize; } public void setMaximumSize(Long maximumSize) { this.maximumSize = maximumSize; } public String getAllowedTypes() { return allowedTypes; } public void setAllowedTypes(String allowedTypes) { this.allowedTypes = allowedTypes; } public List getFile() { return file; } public void setFile(List file) { this.file = file; } public List getFileFileName() { return fileFileName; } public void setFileFileName(List fileFileName) { this.fileFileName = fileFileName; } public List getFileContentType() { return fileContentType; } public void setFileContentType(List fileContentType) { this.fileContentType = fileContentType; } public String execute() throws Exception { String s=null; File uploadFile =new File(ServletActionContext.getServletContext().getRealPath("file")); if(!uploadFile.exists()) { uploadFile.mkdir(); } boolean[] flags=null; //用于标识 flags=new boolean[file.size()]; //规定的上传文件格式分解 String[] fileType =allowedTypes.split(","); // 判断文件大小是否符合条件 for(int i=0;i success.jsp error.jsp input.jsp 1000000 application/msword,text/plain Jsp页面如下:



对于上传文件中的文件大小和文件类型的限制,可以不用手动限制,在这两篇博客中,都自己手动在Action中编写代码,可以利用Struts2中的文件拦截器,直接在配置文件中的Action中进行配置:  1000000 application/msword,text/plain

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档