| 多文件上传 |
|
| 作者是 Administrator | |
| 2008-04-23 07:45:10 | |
|
因为工作需要一个多文件上传,于是就在网上找了找,结果都是答案都是一样的,大同小异,几乎没有什么创新。所以自己就开始动手写一个,也许写的不是多么好,但是还可以用,哈哈~~~要是有什么建议,就是说出来,我们一起进步~~ 好了,不说废话了,开始写程序~~ 我用了Struts 1.1 但是不用提供的FormFile 1、HTML <tr> <td align="left" width="120"> 上传文件: </td> <td align="left" id="image"> <input type="button" value="创 建 附 件" onclick="createfile();" /> <br> <input type="file" id="imageFile" name="imageFile1" style="{cursor:hand}" /> </td> </tr> javaScript var i=1; //添加附件 function createfile() { i=i+1; var td=document.getElementById("image"); var b=document.createElement("br"); td.appendChild(b); var inp=document.createElement("input"); inp.type="file"; inp.size="40"; inp.name="imageFile"+i; inp.id="imageFile"; td.appendChild(inp); } 2.ActionForm 其实只有filename这个属性就OK了。 public class ImageFile extends ActionForm{ private List filename; private List filesize; private List filelist; public List getFilename() { return filename; } public void setFilename(List filename) { this.filename = filename; } public List getFilesize() { return filesize; } public void setFilesize(List filesize) { this.filesize = filesize; } public List getFilelist() { return filelist; } public void setFilelist(List filelist) { this.filelist = filelist; } } 3.ActionForward public ActionForward upload(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ImageFile formbean = (ImageFile) form; // imagelist 存放文件的Byte[]数组 List imagelist = new ArrayList(); // namelist 来存放图片的名称 List namelist = new ArrayList(); // sizelist 来存放图片的大小 List sizelist = new ArrayList(); //重点就在这里 Hashtable fileh = form. getMultipartRequestHandler().getFileElements(); String message=null; int keysize=0; // 解析上传文件 for (Iterator it = fileh.keySet().iterator(); it.hasNext();) { String key = (String) it.next(); FormFile formfile = (FormFile) fileh.get(key); // 文件名 String filename = formfile.getFileName().trim(); // 重点结束 if (filename.equals("")) { keysize++; continue; } int j = filename.indexOf("."); String s = filename.substring(j, filename.length()); if(s.equals(".tif")||s.equals(".jpg")||s.equals(".rmvb")||s.equals(".pdf")||s.equals(".avi")) { //保存上传文件的名称 namelist.add(filename); int filesze = formfile.getFileSize(); //保存上传文件的大小 sizelist.add(filesze); //保存文件上传的字节数组 imagelist.add(formfile); //保存在 formbean中 formbean.setFilename(namelist); formbean.setFilesize(sizelist); formbean.setFilelist(imagelist); }else{ message= "上传文件格式不正确!请选择'jpg'.'tif'.'rmvb'.'pdf'.'avi'文件上传!"; request.setAttribute("bean", formbean); request.setAttribute("message",message); return mapping.findForward("upload"); } } if(keysize==fileh.size()) { message="上传文件不能为空,请选择上传文件!"; request.setAttribute("bean", formbean); request.setAttribute("message",message); return mapping.findForward("upload"); } Session session = HibernateSessionFactory.currentSession(); UploadServ serv = new UploadServ(session); message= serv.saveUploadFile(formbean,path); HibernateSessionFactory.closeSession(); request.setAttribute("bean", formbean); request.setAttribute("message",message); return mapping.findForward("upload"); } 4.至于我的saveUploadFile()就是要处理的业务,返回一个String。就是message。 现在就完成了,请大家多多给意见~~~ |
|
| 最近更新 ( 2008-04-23 07:45:10 ) |

