<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

    ajax struts 動(dòng)態(tài)多文件上傳

    Posted on 2007-07-30 10:01 semovy 閱讀(2674) 評(píng)論(5)  編輯  收藏 所屬分類: JavaScriptstruts

    index.jsp:

    <%@ page language="java" pageEncoding="gbk"%>

    <%@ taglib uri="<%@ taglib uri="<%@ taglib uri="<%@ taglib uri="

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html:html>
    <head>
    <title>
    multiUploadDemo
    </title>
    </head>
    <script language="javascript">
       var num = 0;
     
     function upload(){
      document.getElementById("status").innerHTML = "文件上傳中...";
         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);
    }
    function callback(msg)
    {
     document.getElementById("status").innerHTML = "文件上傳完成...<br>" + msg;
    }
    </script>
    <body bgcolor="#ffffff">
    <div id="status"></div>
    <html:form method="post" action="/multiUpload.do" enctype="multipart/form-data" target="hidden_frame">

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

    </html:form>
    <iframe name='hidden_frame' id="hidden_frame" style="display:none"></iframe>
    <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:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "

    <struts-config>
      <data-sources />
      <form-beans >
        <form-bean name="multiUploadForm" type="com.yourcompany.struts.MultiUploadForm" />

      </form-beans>

      <global-exceptions />
      <global-forwards />
      <action-mappings >
        <action
          attribute="multiUploadForm"
          name="multiUploadForm"
          path="/multiUpload"
          scope="request"
          type="com.yourcompany.struts.MultiUploadAction"
          validate="false" />

      </action-mappings>

      <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
    </struts-config>

    Form bean:  MultiUploadForm.java


    package com.yourcompany.struts;

    import java.util.ArrayList;
    import java.util.List;

    import org.apache.struts.action.ActionForm;

    public class MultiUploadForm extends ActionForm {
     private  List  myFiles; 
        public  MultiUploadForm(){ 
                myFiles  =  new  ArrayList(); 
                //為了能夠在頁面初始顯示一個(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; 
        } 

    }


    ActionBean :MultiUploadAction.java

    package com.yourcompany.struts;

    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.List;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.upload.FormFile;

    public class MultiUploadAction extends Action {
     public ActionForward execute(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response) {
      MultiUploadForm multiUploadForm = (MultiUploadForm) form;
      List myFiles = multiUploadForm.getMyFiles();
      String fileStr = "";
      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());
        fileStr += "filename:::" + file.getFileName() + "file  size:::" + file.getFileSize() ;
         
       }
      }
      //返回文本
      try
      {
       response.setHeader("ContentType", "text/html;charset=gbk");
       PrintWriter out = response.getWriter();
       out.write("<script>parent.callback('upload file success" + fileStr + "')</script>");
      }catch(IOException e)
      {
       e.printStackTrace();
      }

      return null;
     }

    }


    Bean: UploadFile.java

    package com.yourcompany.struts;

    import java.io.Serializable;

    import org.apache.struts.upload.FormFile;

    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; 
         } 
    }


    評(píng)論

    # re: ajax struts 動(dòng)態(tài)多文件上傳[未登錄]  回復(fù)  更多評(píng)論   

    2007-09-28 04:57 by aa
    為什么沒有初始顯示一個(gè)file

    # re: ajax struts 動(dòng)態(tài)多文件上傳  回復(fù)  更多評(píng)論   

    2008-06-19 17:05 by dddd
    沒看出來哪里有ajax的影子

    # re: ajax struts 動(dòng)態(tài)多文件上傳  回復(fù)  更多評(píng)論   

    2008-07-30 13:12 by sdf
    sssssss

    # re: ajax struts 動(dòng)態(tài)多文件上傳  回復(fù)  更多評(píng)論   

    2008-08-27 10:15 by 防盜防
    沒看出來哪里有ajax的影

    # re: ajax struts 動(dòng)態(tài)多文件上傳  回復(fù)  更多評(píng)論   

    2008-10-03 14:16 by error
    copy&paste
    主站蜘蛛池模板: 久久九九兔免费精品6| 久久久久成人片免费观看蜜芽| 久久精品网站免费观看| 亚洲成aⅴ人片在线观| 3d成人免费动漫在线观看| 中文字幕亚洲综合久久2| 免费女人高潮流视频在线观看 | 妞干网手机免费视频| 亚洲欧洲日韩极速播放| AV免费网址在线观看| 亚洲第一成年免费网站| 免费人成视网站在线观看不卡| 免费夜色污私人影院网站电影| 亚洲区小说区图片区| 国产亚洲免费的视频看| 老汉色老汉首页a亚洲| 美女视频黄的全免费视频| 色偷偷女男人的天堂亚洲网| 国产美女精品视频免费观看| 午夜免费国产体验区免费的| 亚洲精品~无码抽插| 中国人xxxxx69免费视频| 亚洲av午夜精品无码专区| 国产成人精品免费视频大全五级| 人成午夜免费大片在线观看| 亚洲av丰满熟妇在线播放| 很黄很黄的网站免费的| 精品亚洲成a人在线观看| 亚洲乱亚洲乱妇无码麻豆| 国产h肉在线视频免费观看| 亚洲狠狠婷婷综合久久| 狠狠综合久久综合88亚洲| 最近中文字幕2019高清免费| 亚洲jizzjizz少妇| 久久亚洲精品成人综合| 免费网站看v片在线香蕉| a成人毛片免费观看| 亚洲国产系列一区二区三区| 久久久亚洲精品蜜桃臀| 曰曰鲁夜夜免费播放视频| 理论秋霞在线看免费|