亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

上傳的進度條 實時反映上傳情況

2019-11-18 20:15:08
字體:
來源:轉載
供稿:網友
      asp中使用組件上傳時,有點麻煩就是不知道上傳進度是多少,雖然有的提供了上傳進度條,例如abcupload(下載地址:http://www.websupergoo.com)已經提供了顯示當前上傳狀態的方法,里面就有專門的實例(在安裝目錄的Examples下面的PRogressupload.htm),它是提交數據的同時彈出一個反映進度的頁面(progressbar.asp),然后通過這個頁面自刷新來每隔一點時間獲取當時的上傳狀態,然后把它們顯示出來,但是用頁面自刷新的方法效率比較低,不不好調節刷新時間間隔(最小間隔為1秒),而且服務器端返回數據量大,所以不能很好的實時反映上傳情況。在客戶端使用javascript調用MSxml對象和setTimout方法去定時load一個xml文件可以實現無刷新定時獲取服務器端數據,在這里可以讓progressbar.asp輸出xml格式的數據,然后供客戶端load,僅返回必要的幾個參數,這樣:頁面不刷新;傳輸的數據少,不需要把所有數據全傳到客戶端 ,只傳輸反映狀態的數據,如果定時器設置的時間足夠小,那么我們就可以"實時"看到上傳的狀況了。以下就以abcupload4為例來說明怎么來制作實時的文件上傳進度條。

(注:我們在abcupload自帶例子基礎上改進。)

progressupload.htm(上傳文件的前臺提交,我們讓進度條在這個里面顯示)



<html>

<body>



<script language="Javascript">

<!--

theUniqueID = (new Date()).getTime() % 1000000000;

function s()    //讓數據提交的同時執行顯示進度條的函數

{

       bar();      //開始執行反映上傳情況的函數

       document.myform.action = "progressupload.asp?ID=" + theUniqueID;  //處理上傳數據的程序

       document.myform.target="up"  //將提交的數據放在一個名字是up隱藏的iframe里面處理,這樣提交的頁面就不會跳轉到處理數據的頁

       document.myform.submit();     //提交表單





}

function bar()

{

       bar1.style.display='';  //讓顯示上傳進度顯示的層的可見

       var timeoutid=null;        //這個變量是作定時器的ID

    var oXMLDoc = new ActiveXObject('MSXML');             //創建'MSXML'對象

    sURL = "progressbar.asp?ID=" + theUniqueID + "&temp="+Math.random();      //獲取上傳狀態數據的地址

    oXMLDoc.url = sURL;     //load數據

    var oRoot=oXMLDoc.root;     //獲取返回xml數據的根節點

    if(oRoot.children != null)  

    {

              if (oRoot.children.item(0).text-100==0)              //文件上傳結束就取消定時器

                     clearTimeout(timeoutid)

              PercentDone.style.width=oRoot.children.item(0).text+"%";         //設置進度條的百分比例

              //根據返回的數據在客戶端顯示

              min.innerHTML=oRoot.children.item(1).text;       //顯示剩余時間(分鐘)

              secs.innerHTML=oRoot.children.item(2).text;       //顯示剩余時間(秒鐘)

              BytesDone.innerHTML=oRoot.children.item(3).text;    //已上傳數據大小

              BytesTotal.innerHTML=oRoot.children.item(4).text;    //總大小

              BytesPerSecond.innerHTML=oRoot.children.item(5).text; //傳輸速率

              Information.innerHTML=oRoot.children.item(6).text;          //上傳信息

    }

       if (oRoot.children.item(0).text-100<0)  //只要文件沒有傳完,就每隔多少時間獲取一次數據

              timeoutid = setTimeout("bar()",50)      //這里設定時間間隔是0.05秒,你也可以根據你的情況修改獲取數據時間間隔

}

//-->

</script>



<form name="myform" method="post" action="progressupload.asp" enctype="multipart/form-data" target=up>

<input type="file" name="filefield1"><br>

<input type="button" name="dosubmit" value="Upload" onclick="s()"><br>

<div id=bar1 style="display:none">

<table border="0" width="100%">

  <tr>

    <td><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>傳送:</b></font></td>

  </tr>

  <tr bgcolor="#999999">

    <td>

      <table border="0" width="" cellspacing="1" bgcolor="#0033FF" id=PercentDone>

        <tr>

          <td><font size=1>&nbsp;</font></td>

        </tr>

      </table>

    </td>

  </tr>

  <tr>

    <td>

      <table border="0" width="100%">

        <tr>

          <td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">剩余時間:</font></td>

          <td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">

                 <span id=min></span> 分  

              <span id=secs></span> 秒

              (<span id=BytesDone></span> KB of

              <span id=BytesTotal></span> KB 已上傳)</font></td>

        </tr>

        <tr>

          <td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">

              傳送速度:</font></td>

          <td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">

              <span id=BytesPerSecond></span> KB/秒</font></td>

        </tr>

        <tr>

          <td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">信息:</font></td>

          <td><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><span id=Information></span></font></td>

        </tr>

      </table>

    </td>

  </tr>

  <tr></tr>

</table>

</div>

<iframe name="up" style="display:none"></iframe>

</form>



</body>

</html>



progressbar.asp(返回上傳狀況數據的文件)



<%@EnablesessionState=False%>

<%

On Error Resume Next

Set theProgress = Server.CreateObject("ABCUpload4.XProgress")  '創建上傳組件對象

theProgress.ID = Request.QueryString("ID")

'將返回數據以xml格式輸出

%>

<?xml version="1.0" encoding="gb2312" ?>

<plan>

       <PercentDone><%=theProgress.PercentDone%></PercentDone>

       <min><%=Int(theProgress.SecondsLeft/60)%></min>

       <secs><%=theProgress.SecondsLeft Mod 60%></secs>

       <BytesDone><%=Round(theProgress.BytesDone / 1024, 1)%></BytesDone>

       <BytesTotal><%=Round(theProgress.BytesTotal / 1024, 1)%></BytesTotal>

       <BytesPerSecond><%=Round(theProgress.BytesPerSecond/1024, 1)%></BytesPerSecond>

       <Information><%=theProgress.Note%></Information>

</plan>



progressupload.asp(處理上傳文件)



<%@EnableSessionState=False%>

<%

Response.Expires = -10000

Server.ScriptTimeOut = 300



Set theForm = Server.CreateObject("ABCUpload4.XForm")

theForm.Overwrite = True

theForm.MaxUploadSize = 8000000

theForm.ID = Request.QueryString("ID")

Set theField = theForm("filefield1")(1)

If theField.FileExists Then

       theField.Save theField.FileName

End If

%>



<html>

<body>

傳送結束

</body>

</html>





對于其他組件上傳,原理也就差不多了,只是方法不一樣罷了。

希望大家有什么意見和建議和我聯系:)

junminliu@msn.com


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久热精品视频在线免费观看| 亚洲一区二区三区乱码aⅴ| 成人免费看吃奶视频网站| 青青精品视频播放| 日韩免费av片在线观看| 中文字幕亚洲天堂| 97色在线观看免费视频| 91色琪琪电影亚洲精品久久| 欧美久久精品午夜青青大伊人| 亚洲国产精久久久久久久| 国产在线视频一区| 国产精品 欧美在线| 国产日韩欧美自拍| 黄网站色欧美视频| 91精品免费视频| 国产日韩欧美中文| 日韩欧美中文字幕在线观看| 国产成人黄色av| 亚洲午夜久久久影院| 亚洲最大福利网| 亚洲精品国产拍免费91在线| 久久久精品网站| 欧美日韩一区二区三区| 97精品久久久| 欧美精品久久久久a| 日韩免费黄色av| 欧美第一黄网免费网站| 性欧美视频videos6一9| 91久热免费在线视频| 亚洲国内精品视频| 日韩av网址在线观看| 久久久久久噜噜噜久久久精品| 中文字幕日韩高清| 国产精品劲爆视频| 91在线视频成人| 欧美激情免费看| 成人福利网站在线观看11| 91精品久久久久久久久久| 欧美男插女视频| 欧美成人一区二区三区电影| 久久精品国产一区| 国产女精品视频网站免费| 亚洲伊人一本大道中文字幕| 久久久爽爽爽美女图片| 国产精品久久久久久久电影| 欧美精品在线免费| 91在线视频导航| 97久久久免费福利网址| 欧美自拍视频在线观看| 欧美大尺度激情区在线播放| 日韩在线中文字| 久久久噜噜噜久久| 日韩av免费看网站| 亚洲精品视频播放| 91情侣偷在线精品国产| 国产成人拍精品视频午夜网站| 欧美制服第一页| 日本道色综合久久影院| 国产综合在线看| 欧美日韩另类字幕中文| 国产精品极品尤物在线观看| 欧美日韩国产麻豆| 国产成人精品视频| 国产精品视频999| 国产精品视频久久久| 91精品国产高清久久久久久91| 日韩成人黄色av| 欧美寡妇偷汉性猛交| 亚洲free性xxxx护士hd| 国产一区二区在线免费视频| 日本久久中文字幕| 欧美电影在线播放| 亚洲一区二区久久久久久久| 欧美日韩一区二区免费视频| 国产亚洲精品美女久久久久| 色yeye香蕉凹凸一区二区av| 亚洲成av人乱码色午夜| 亚洲欧美精品伊人久久| 欧美高清性猛交| 亚洲免费av网址| 成人羞羞国产免费| 久久精品中文字幕| 国产免费久久av| 久久天天躁狠狠躁老女人| 久久视频免费在线播放| 欧美在线亚洲在线| 日韩av在线影院| 精品免费在线观看| 91av中文字幕| 成人黄色在线免费| 一本大道香蕉久在线播放29| 欧美激情在线狂野欧美精品| 精品无码久久久久久国产| 亚洲国产精彩中文乱码av在线播放| 欧美在线视频播放| 亚洲最大福利视频| 亚洲精品第一页| 欧美成人精品xxx| 久久人人爽亚洲精品天堂| 久久影视免费观看| 亚洲精品日韩久久久| 国产精品网址在线| 精品视频久久久久久| 色老头一区二区三区| 高清在线视频日韩欧美| 欧美另类极品videosbestfree| 日韩精品在线免费播放| 色天天综合狠狠色| 综合网中文字幕| 亚洲精品xxx| 日韩在线视频线视频免费网站| 亚洲免费电影一区| 九九精品在线视频| 欧美日韩国产第一页| 91九色视频导航| 亚洲第一福利网| 久久久久久久网站| 久久久精品免费视频| 高清日韩电视剧大全免费播放在线观看| 国模精品视频一区二区三区| 孩xxxx性bbbb欧美| 久久香蕉国产线看观看网| 热门国产精品亚洲第一区在线| 68精品国产免费久久久久久婷婷| 亚洲人成绝费网站色www| 在线播放国产精品| 九九久久久久久久久激情| 91久久精品美女高潮| 欧美性猛xxx| 亚洲在线观看视频网站| 成人黄色在线免费| 日本精品视频在线| 国产成人综合精品在线| 国产精品久久电影观看| 国产精品免费视频久久久| 亚洲精品免费在线视频| 国产99视频精品免视看7| 亚洲精品一区久久久久久| 午夜精品久久久久久久白皮肤| 欧美精品www在线观看| 日韩美女写真福利在线观看| 欧美激情精品久久久久久大尺度| 亚洲在线免费看| 国产深夜精品福利| 欧美裸体男粗大视频在线观看| 69视频在线播放| 成人在线国产精品| 国产精品老女人精品视频| 精品视频—区二区三区免费| 在线日韩欧美视频| 日韩动漫免费观看电视剧高清| 精品调教chinesegay| 成人网欧美在线视频| 中文欧美日本在线资源| 91丨九色丨国产在线| 久久久亚洲网站| 国产精品日韩一区| 亚洲精品视频网上网址在线观看| 亚洲精品xxx| 日本一本a高清免费不卡| 亚洲精品永久免费| 狠狠色狠狠色综合日日五| 亚洲图片欧美午夜| 在线视频欧美日韩精品|