仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 764|回复: 7
打印 上一主题 下一主题

[学习教程] ASP编程:改善文件上传的进度条,及时反应上传情...

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:23:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。上传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"onclick="s()"><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></p>对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了,
因胸联盟 该用户已被删除
沙发
发表于 2015-1-20 09:45:45 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
简单生活 该用户已被删除
板凳
发表于 2015-1-29 06:36:45 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
第二个灵魂 该用户已被删除
地板
发表于 2015-1-31 20:46:18 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
变相怪杰 该用户已被删除
5#
 楼主| 发表于 2015-2-6 22:30:48 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
兰色精灵 该用户已被删除
6#
发表于 2015-2-18 22:59:50 | 只看该作者
那么,ASP.Net有哪些改进呢?
精灵巫婆 该用户已被删除
7#
发表于 2015-3-6 11:21:48 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
老尸 该用户已被删除
8#
发表于 2015-3-13 00:09:39 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表