posts - 0, comments - 77, trackbacks - 0, articles - 356
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          主要代碼如下  
           
          Form部分:  
           
          public  class  MultiUploadForm  extends  ActionForm  {  
                 private  List  myFiles;  
                 public  MultiUploadForm(){  
                         myFiles  =  new  ArrayList();  
                         //為了能夠在頁(yè)面初始顯示一個(gè)file  
                         myFiles.add(new  UploadFile());  
                 }  
                 public  List  getMyFiles()  {  
                         return  myFiles;  
                 }          
           
             //注意這個(gè)方法的定義  
           
               public  UploadFile  getUploadFile(int  index){  
                         int  size  =  myFiles.size();  
                         if(index>size-1){  
                                 myFiles.add(new  UploadFile());  
                         }  
                         return  (UploadFile)myFiles.get(index);  
                 }  
                 public  void  setMyFiles(List  myFiles)  {  
                         this.myFiles  =  myFiles;  
                 }  
          }  
           
          Dataset部分:  
          public  class  UploadFile  implements  Serializable  {  
                 private  FormFile  file;  
                 public  FormFile  getFile()  {  
                         System.out.println("run  in  uploadFile.getFile()");  
                         return  file;  
                 }  
                 public  void  setFile(FormFile  file)  {  
                         this.file  =  file;  
                 }  
          }  
          Action部分:  
          public  class  MultiUploadAction  extends  Action  {  
                 public  ActionForward  execute(ActionMapping  mapping,  ActionForm  form,  
                                                                           HttpServletRequest  request,  
                                                                           HttpServletResponse  response)  {  
                         MultiUploadForm  multiUploadForm  =  (MultiUploadForm)  form;  
                         List  myFiles  =  multiUploadForm.getMyFiles();  
                         for(int  i  =0;i<myFiles.size();i++){  
                                 UploadFile  uploadFile  =  (UploadFile)myFiles.get(i);  
                                 FormFile  file  =  uploadFile.getFile();  
           
                                 if(file==null){  
                                         System.out.println("file  is  null");  
                                 }  
                                 else{  
           
                                         //能運(yùn)行到這里,就可以使用單個(gè)文件上傳的方法進(jìn)行上傳了。循環(huán)而已  
                                         System.out.println("filename:::"  +  file.getFileName());  
                                         System.out.println("file  size:::"  +  file.getFileSize());  
                                 }  
                         }  
           
                         return  null;  
                 }  
          }  
           
          JSP部分:  
           
          <%@ page contentType="text/html; charset=GBK" %>
          <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
          <%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>

          <html:html>
          <head>
          <title>
          multiUploadDemo
          </title>
          </head>
          <script language="javascript" type="">
             var num = 0;
           
           function upload(){
               multiUploadForm.submit();
             }

          function additem(id)
          {
           var row,cell,str;
           row = eval("document.all["+'"'+id+'"'+"]").insertRow();
           if(row != null )
              {
                 cell = row.insertCell();
                 str="<input type="+'"'+"file"+'"'+" name=uploadFile["+ num +"].file><input type="+'"'+"button"+'"'+" value="+'"'+"刪除"+'"'+" onclick='deleteitem(this,"+'"'+"tb"+'"'+");'>"
                cell.innerHTML=str;
              }
           num++;
          }
          function deleteitem(obj,id)
          {
           var rowNum,curRow;
           curRow = obj.parentNode.parentNode;
           rowNum = eval("document.all."+id).rows.length - 1;
           eval("document.all["+'"'+id+'"'+"]").deleteRow(curRow.rowIndex);
          }

          </script>
          <body bgcolor="#ffffff">
          <html:form method="post" action="/multiUploadAction.do" enctype="multipart/form-data">

          <table id="tb">
          </table>

          </html:form>
          <input type="button" name="btnAddFile" value="Add File" onclick="additem('tb')"/>
          <input type="button" name="btnUpload" value="upload" onclick="upload()"/>
          </body>
          </html:html> 
           struts-config.xml部分:  
           
             <form-beans>  
                 <form-bean  name="multiUploadForm"  type="MultiUploadForm"  />  
             </form-beans>  
           
          <action  name="multiUploadForm"  path="/multiUploadAction"  type="MultiUploadAction"  />  
           
          以上只是對(duì)動(dòng)態(tài)多文件上傳部分進(jìn)行了描述,只是一個(gè)Demo。大家可以根據(jù)自己的需求變通的調(diào)整一下。  

          主站蜘蛛池模板: 漳州市| 灯塔市| 郓城县| 阳泉市| 伊金霍洛旗| 锦州市| 崇仁县| 宿迁市| 沛县| 乐亭县| 巧家县| 平邑县| 潍坊市| 舟山市| 富民县| 杭州市| 凌云县| 富锦市| 普定县| 通山县| 新宾| 内乡县| 道孚县| 隆化县| 云和县| 茌平县| 丰顺县| 江城| 延吉市| 鱼台县| 望城县| 新丰县| 许昌市| 封丘县| 都昌县| 安达市| 屏东县| 名山县| 广州市| 双城市| 南郑县|