Struts1.x系列教程(9):上传任意多个文件 - 编程入门网
pache.struts.upload.FormFile; import java.util.*; public class UploadMoreForm extends ActionForm { private List<FormFile> myFiles = new ArrayList<FormFile>(); // 用于保存不定数量的FormFile对象 public FormFile getFile(int i) // 索引属性 { return myFiles.get(i); } public void setFile(int i, FormFile myFile) // 索引属性 { if (myFile.getFileSize() > 0) // 只有上传文件的字节数大于0,才上传这个文件 { myFiles.add(myFile); } } public int getFileCount() // 获得上传文件的个数 { return myFiles.size(); } }
在UploadMoreFile类中使用了List对象来保存不定数量的FormFile对象。读者也可以使用其他的集合类来保存这些FormFile对象。而且在UploadMoreFile类中使用了带索引的属性,详见getFile和setFile方法。在这两个方法中,第一个参数是一个int类型的变量。要注意的是,索引属性的get和set方法的第一个参数必须是int类型的变量,否则系统会不认这个索引属性。这个索引属性用于和客户端不定数量的<input type=”file” />元素相对应,每一个索引项代表一个<input type=”file” />元素上传的文件(FormFile对象)。 【第3步】建立Struts动作类(Action的子类) 由于在《Struts1.x系列教程(8):上传单个文件》一文的例子中的UploadAction类中已经有了一个saveFile方法用于保存单个上传文件,因此,处理多个上传文件的Struts动作类可以从UploadAction类继承。在<samples工程目录>\src\action目录中建立一个UploadMoreAction.java文件,代码如下: package action; import javax.servlet.http.*; import org.apache.struts.action.*; import org.apache.struts.upload.FormFile; import java.io.*; import actionform.*; public class UploadMoreAction extends UploadAction { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { UploadMoreForm umForm = (UploadMoreForm) form; PrintWriter out = null; int count = 0; try { response.setCharacterEncoding("GBK"); out = response.getWriter(); count = umForm.getFileCount(); // 获得上传文件的总数 for (int i = 0; i < count; i++) { saveFile(umForm.getFile(i)); // 开始保存每一个上传文件 } out.println("成功上传" + String.valueOf(count) + "个文件."); } catch (Exception e) { out.println(e.getMessage()); } return null; } } 【第4步】配置struts-config.xml 在这一步来配置一下在第2步和第3步分别建立的ActionForm和Action的子类。打开struts-config.xml文件,在<form-beans>元素中加入如下的子元素: <form-bean name="uploadMoreForm" type="actionform.UploadMoreForm" /> 在<action-mappings>元素中加入如下的子元素: <action name="uploadMoreForm" path="/uploadMoreFile" scope="request" type="action.UploadMoreAction" /> 【第5步】复制gif图片 本例中 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |