<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
    對(duì)IT人來說,要成為一個(gè)優(yōu)秀的技術(shù)型管理者,除了需要具備扎實(shí)的技術(shù)基礎(chǔ)之外,還應(yīng)該培養(yǎng)良好的人際關(guān)系能力、談判與溝通技能、客戶關(guān)系與咨詢技能、商業(yè)頭腦和財(cái)務(wù)技能以及創(chuàng)新意識(shí),此外還要有巧妙的激勵(lì)技巧和化解沖突與解決突發(fā)問題的能力.
    聲明: 上傳核心代碼采用cos  此版本屬于自己改裝。版權(quán)歸天星網(wǎng)

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

             經(jīng)過我改裝后的cos可以限制上傳文件類型,返回文件流報(bào)告(ajax使用),假設(shè)讀者已經(jīng)熟悉cos和ajax。可以返回上傳文件名稱,完成百分比,文件傳輸速度,需要總時(shí)間,剩余時(shí)間。
             以下是部分代碼:
        
    文件1
    <%
       //創(chuàng)建此目錄保存文件
       String saveDirectory = "testfile";
       //每個(gè)文件最大100m,最多3個(gè)文件,所以...
       int maxPostSize = 3 * 100 * 1024 * 1024;
       //命名規(guī)則
       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;
                //剩余時(shí)間
                var totalTimeHMS = xmlHttp.responseXML.getElementsByTagName("totalTimeHMS")[0].firstChild.data;
                //總時(shí)間
                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的優(yōu)越性得意于他對(duì)IO流的重寫。BufferedServletInputStream,LimitedServletInputStream,PartInputStream 經(jīng)過幾次對(duì)原始流的優(yōu)化。詳細(xì)信息請(qǐng)查看cos源碼。


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

    jwebee

    我的個(gè)人網(wǎng)站
    posted on 2006-11-15 09:59 周行 閱讀(921) 評(píng)論(0)  編輯  收藏 所屬分類: IT技術(shù)
    Java-Android-jwebee
    主站蜘蛛池模板: 国产极品粉嫩泬免费观看| 亚洲午夜精品久久久久久app| 中文字幕视频免费在线观看| 亚洲精品国产精品乱码不卞| 国产精品亚洲一区二区三区在线观看| 女性自慰aⅴ片高清免费| 成人亚洲国产va天堂| 成人人免费夜夜视频观看| 亚洲色大成网站www尤物| 成人免费毛片视频| 亚洲色成人四虎在线观看| 免费观看的a级毛片的网站| 亚洲欧洲国产综合AV无码久久| 卡一卡二卡三在线入口免费| 亚洲另类无码一区二区三区| 日本一道高清不卡免费| 国产成人亚洲精品无码AV大片| 日本中文一区二区三区亚洲| 一级做α爱过程免费视频| 怡红院亚洲怡红院首页| 大地资源在线资源免费观看| 亚洲久本草在线中文字幕| 最近中文字幕免费mv在线视频| 亚洲欧洲国产精品久久| 亚洲中文无码永久免费| 亚洲av无码专区在线电影天堂| 国产jizzjizz免费看jizz| 一出一进一爽一粗一大视频免费的| 久久亚洲国产成人精品无码区| 日韩电影免费在线观看网站| 亚洲嫩模在线观看| 免费中文熟妇在线影片| 亚洲AV永久无码精品一福利| 亚洲成av人片天堂网老年人| 两个人看的www视频免费完整版| 亚洲AV日韩精品久久久久久| 97视频免费在线| 亚洲av无码专区国产不乱码| 久久久精品国产亚洲成人满18免费网站| 13小箩利洗澡无码视频网站免费| 亚洲美女视频免费|