|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。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>
<scriptlanguage="javascript">
<!--
theUniqueID=(newDate()).getTime()%1000000000;
functions()//让数据提交的同时实行显现进度条的函数
{
bar();//入手下手实行反应上传情形的函数
document.myform.action="progressupload.asp?ID="+theUniqueID;//处置上传数据的程序
document.myform.target="up"//将提交的数据放在一个名字是up埋没的iframe内里处置,如许提交的页面就不会跳转各处理数据的页
document.myform.submit();//提交表单
}
functionbar()
{
bar1.style.display=;//让显现上传进度显现的层的可见
vartimeoutid=null;//这个变量是作准时器的ID
varoXMLDoc=newActiveXObject(MSXML);//创立MSXML工具
sURL="progressbar.asp?ID="+theUniqueID+"&temp="+Math.random();//猎取上传形态数据的地点
oXMLDoc.url=sURL;//load数据
varoRoot=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>
<formname="myform"method="post"action="progressupload.asp"enctype="multipart/form-data"target=up>
<inputtype="file"name="filefield1"><br>
<inputtype="button"name="dosubmit"value="Upload"><br>
<divid=bar1style="display:none">
<tableborder="0"width="100%">
<tr>
<td><fontface="Verdana,Arial,Helvetica,sans-serif"size="2"><b>传送:</b></font></td>
</tr>
<trbgcolor="#999999">
<td>
<tableborder="0"width=""cellspacing="1"bgcolor="#0033FF"id=PercentDone>
<tr>
<td><fontsize=1></font></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<tableborder="0"width="100%">
<tr>
<td><fontface="Verdana,Arial,Helvetica,sans-serif"size="1">残剩工夫:</font></td>
<td><fontface="Verdana,Arial,Helvetica,sans-serif"size="1">
<spanid=min></span>分
<spanid=secs></span>秒
(<spanid=BytesDone></span>KBof
<spanid=BytesTotal></span>KB已上传)</font></td>
</tr>
<tr>
<td><fontface="Verdana,Arial,Helvetica,sans-serif"size="1">
传送速率:</font></td>
<td><fontface="Verdana,Arial,Helvetica,sans-serif"size="1">
<spanid=BytesPerSecond></span>KB/秒</font></td>
</tr>
<tr>
<td><fontface="Verdana,Arial,Helvetica,sans-serif"size="1">信息:</font></td>
<td><fontface="Verdana,Arial,Helvetica,sans-serif"size="1"><spanid=Information></span></font></td>
</tr>
</table>
</td>
</tr>
<tr></tr>
</table>
</div>
<iframename="up"style="display:none"></iframe>
</form>
</body>
</html>
progressbar.asp(前往上传情况数据的文件)
<%@EnableSessionState=False%>
<%
OnErrorResumeNext
SettheProgress=Server.CreateObject("ABCUpload4.XProgress")创立上传组件工具
theProgress.ID=Request.QueryString("ID")
将前往数据以xml格局输入
%>
<?xmlversion="1.0"encoding="gb2312"?>
<plan>
<PercentDone><%=theProgress.PercentDone%></PercentDone>
<min><%=Int(theProgress.SecondsLeft/60)%></min>
<secs><%=theProgress.SecondsLeftMod60%></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
SettheForm=Server.CreateObject("ABCUpload4.XForm")
theForm.Overwrite=True
theForm.MaxUploadSize=8000000
theForm.ID=Request.QueryString("ID")
SettheField=theForm("filefield1")(1)
IftheField.FileExistsThen
theField.SavetheField.FileName
EndIf
%>
<html>
<body>
传送停止
</body>
</html>
关于其他组件上传,道理也就差未几了,只是办法纷歧样而已。
但愿人人有甚么定见和倡议和我接洽:)
junminliu@msn.com
专业性的服务。有的ASP商提供垂直型的应用服务,针对某一特定行业提供应用服务。 |
|