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

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

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

    Java-Android-jwebee
    Java-Android-jwebee
    對IT人來說,要成為一個優秀的技術型管理者,除了需要具備扎實的技術基礎之外,還應該培養良好的人際關系能力、談判與溝通技能、客戶關系與咨詢技能、商業頭腦和財務技能以及創新意識,此外還要有巧妙的激勵技巧和化解沖突與解決突發問題的能力.
    聲明: 上傳核心代碼采用cos  此版本屬于自己改裝。版權歸天星網

            近兩天項目需要改版上傳組件,我仔細研究了一下各上傳組件的源碼。cos不論從速度還是文件大小方面保持著良好的特性。

             經過我改裝后的cos可以限制上傳文件類型,返回文件流報告(ajax使用),假設讀者已經熟悉cos和ajax。可以返回上傳文件名稱,完成百分比,文件傳輸速度,需要總時間,剩余時間。
             以下是部分代碼:
        
    文件1
    <%
       //創建此目錄保存文件
       String saveDirectory = "testfile";
       //每個文件最大100m,最多3個文件,所以...
       int maxPostSize = 3 * 100 * 1024 * 1024;
       //命名規則
       FileRenamePolicy policy = new DateFileRenamePolicy();
       
       HttpFileUPload fileUpload = new HttpFileUPload();
       //編碼
       fileUpload.setEncoding("UTF-8");
       fileUpload.setMaxPostSize(maxPostSize);
       fileUpload.setPolicy(policy);
       fileUpload.setSaveDirectory(saveDirectory);
       //允許上傳文件類型
       fileUpload.setAllowFiles("jpg,gif,mp3,rmvb,wmv,ghs,reg");
       //輸出反饋信息
       try{
        Enumeration files = fileUpload.parseRequest(request);
        while (files.hasMoreElements()) {
         String name = (String) files.nextElement();
         File file = fileUpload.getFile(name);
         if (file != null) {
          out.println("上傳的文件:" + file.getAbsolutePath()+" ");
          out.println("<hr>");
         }
        }
       }catch(Exception e){
        out.println(e.toString()+"<br>");
        out.println("<input type='button' value='重新上傳' onClick=\""+"location='index.jsp'\""+">");
       }finally{
        //清理session
        Thread.sleep(1000);
        fileUpload.dispose();
       }
      %>


    文件2
    <html>
     <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>文件上傳</title>
     </head>
     <body>
      <form name="uploadForm" id="uploadForm" method="post" enctype="multipart/form-data" action="upload.jsp">
       <P>
        <INPUT name="file1" type="file">
       </P>
       <P align="left">
        <INPUT name="file2" type="file">
       </P>
       <p>
        <INPUT name="file3" type="file">
       </p>
       <p>
       </p>
       <p id="show">
       </p>
       <p align="left">
        <input type="button" name="Submit" id="upload" value="上傳" onClick="go();">
       </p>
      </form>
     </body>
    </html>
    <script type="text/javascript">
    function createXMLHttpRequest() {
        if (window.ActiveXObject) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            if (window.XMLHttpRequest) {
                xmlHttp = new XMLHttpRequest();
            } else {
            }
        }
    }
    function go() {
        document.uploadForm.submit();
        createXMLHttpRequest();
        var url = "ProgressBarServlet";
        var button = document.getElementById("upload");
        button.disabled = true;
        xmlHttp.open("GET", url, true);
        xmlHttp.onreadystatechange = goCallback;
        xmlHttp.send(null);
     
    }
    function goCallback() {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {
                setTimeout("pollServer()", 2000);
            }
        }
    }
    function pollServer() {
        createXMLHttpRequest();
        var url = "ProgressBarServlet";
        xmlHttp.open("GET", url, true);
        xmlHttp.onreadystatechange = pollCallback;
        xmlHttp.send(null);
    }
    function pollCallback() {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {
                var completePercent = xmlHttp.responseXML.getElementsByTagName("completePercent")[0].firstChild.data;
                //百分比
                var uploadSpeedKB = xmlHttp.responseXML.getElementsByTagName("uploadSpeedKB")[0].firstChild.data;
                //傳輸速度
                var remainTimeHMS = xmlHttp.responseXML.getElementsByTagName("remainTimeHMS")[0].firstChild.data;
                //剩余時間
                var totalTimeHMS = xmlHttp.responseXML.getElementsByTagName("totalTimeHMS")[0].firstChild.data;
                //總時間
                var fileName = xmlHttp.responseXML.getElementsByTagName("fileName")[0].firstChild.data;
                if (completePercent < 100) {
                    document.getElementById("show").innerHTML =
                    fileName + "\uff1b" + completePercent
                    + "% <br>\u901f\u5ea6\uff1a" + uploadSpeedKB +"KB"
                    + "\uff1b<br>\u5269\u4f59\u65f6\u95f4" + remainTimeHMS
                    + "\uff1b<br>\u9700\u8981\uff1a" + totalTimeHMS; 
                    setTimeout("pollServer()", 1000);
                } else {
                    document.getElementById("show").innerHTML = "\u5b8c\u6210";
                }
            }
        }
    }
    </script>

          cos的優越性得意于他對IO流的重寫。BufferedServletInputStream,LimitedServletInputStream,PartInputStream 經過幾次對原始流的優化。詳細信息請查看cos源碼。


          周行制作   jwebee@163.com 
           工程文件下載

    jwebee

    我的個人網站
    posted on 2006-11-15 09:59 周行 閱讀(921) 評論(0)  編輯  收藏 所屬分類: IT技術
    Java-Android-jwebee
    主站蜘蛛池模板: 四虎影视在线永久免费观看| 亚洲国产成人精品激情| 青青草国产免费久久久下载| 青柠影视在线观看免费| 亚洲丰满熟女一区二区哦| 18亚洲男同志videos网站| 91麻豆国产自产在线观看亚洲| 一个人看的www免费视频在线观看| 亚洲AV无码之国产精品| 亚洲国产成人99精品激情在线| 久久夜色精品国产亚洲AV动态图 | 亚洲高清中文字幕| 国产AⅤ无码专区亚洲AV| 日韩中文无码有码免费视频| 免费A级毛片无码免费视| 91精品全国免费观看含羞草| a毛片免费播放全部完整| jizz免费观看视频| 免费人成网站永久| 看亚洲a级一级毛片| 亚洲国产成人AV在线播放| 亚洲精品久久久久无码AV片软件| 亚洲香蕉在线观看| 亚洲一区二区三区免费观看| 久久久久久亚洲精品成人| 亚洲天天做日日做天天欢毛片| 亚洲国产精品一区二区第一页| 自拍偷自拍亚洲精品情侣| 久久久久亚洲AV成人网人人网站| 亚洲国产精品嫩草影院久久| 无码专区一va亚洲v专区在线| 国产色爽免费视频| 亚洲A∨午夜成人片精品网站| 日本一道综合久久aⅴ免费| 国产午夜鲁丝片AV无码免费| 免费欧洲毛片A级视频无风险| 日韩精品亚洲专区在线观看| 爱情岛论坛网亚洲品质自拍| 丝袜熟女国偷自产中文字幕亚洲| 亚洲熟妇无码AV在线播放| 亚洲AV无码日韩AV无码导航|