Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度
2008-08-04 16:35
706 查看
回顾上一篇:
我们介绍了如何从HTTP请求流中将数据部分进行截取,同时将数据相关信息进行保存。
本篇概述:
用过ajax的朋友应该有听过XmlHttpRequest对象,ajax其实就是通过XmlHttpRequest对象来向服务器发出异步请求,并从服务器获得数据,然后用javascript来操作DOM而更新页面。
本篇就是要通过XmlHttpRequest对象来实现实时的进度显示。
效果图:
if (!IsPostBack)
string sguid = GetUploadId(bPreloadedEnitityBody, eContentEncode);//GetUploadId是自己写的一个方法用来从请求流中获取上传ID
UploadFileInfo ufiFileInfo = (UploadFileInfo)HttpContext.Current.Cache[sguid];//取出文件信息对象
其它页面如果要使用这个对象就得先获取ID,之后就可以自由操作了。
2、进度的显示
从图中我们可以看到,当显示进度的时候,背后的页面成灰色,并且无法响应任何事件,有点类似模态窗口。这个效果大家可以在网上查查,还是挺容易实现的。我这里有一段js显示此效果的代码(搜集于网上):
function ModalDialog(name,divid,width,height,leftop,topop,color)
//页面A.aspx
function returnresponse(url)
//URL所指向的页面B的代码.cs,当然也可以是同一个页面的cs
if(Request.QueryString["event"]=="test")
function xmlHttpPoolFactory()
var a = new xmlHttpPoolFactory();//建立一个全局的工厂实例
var strevent = "";
function refresh(url,interval,div)
{//该方法我用来定时刷新,因为除了SetTimeout还有一些其它活要干
{//因为可能需要刷新的div不只一个,所以利用js的arguments来解决动态参数的问题
{
{
{
if(i!=arguments.length-1)
str = str + "'"+arguments[i]+"',";
else
str = str+"'"+arguments[i]+"'";
}
setTimeout("refresh("+str+")", interval );//定时执行该方法
}
到这就差不多整个专题都结束了,接下来几天,我会把代码稍微调整下,然后传上来。
由于这段时间要上班,实在抽不出时间来整理,如果大家需要可以先拿去看看。不过代码写的有点乱,而且有些功能也没有完善,时间实在太少,大家见谅。
粗糙的工程
我们介绍了如何从HTTP请求流中将数据部分进行截取,同时将数据相关信息进行保存。
本篇概述:
用过ajax的朋友应该有听过XmlHttpRequest对象,ajax其实就是通过XmlHttpRequest对象来向服务器发出异步请求,并从服务器获得数据,然后用javascript来操作DOM而更新页面。
本篇就是要通过XmlHttpRequest对象来实现实时的进度显示。
效果图:
if (!IsPostBack)
string sguid = GetUploadId(bPreloadedEnitityBody, eContentEncode);//GetUploadId是自己写的一个方法用来从请求流中获取上传ID
UploadFileInfo ufiFileInfo = (UploadFileInfo)HttpContext.Current.Cache[sguid];//取出文件信息对象
其它页面如果要使用这个对象就得先获取ID,之后就可以自由操作了。
2、进度的显示
从图中我们可以看到,当显示进度的时候,背后的页面成灰色,并且无法响应任何事件,有点类似模态窗口。这个效果大家可以在网上查查,还是挺容易实现的。我这里有一段js显示此效果的代码(搜集于网上):
function ModalDialog(name,divid,width,height,leftop,topop,color)
//页面A.aspx
function returnresponse(url)
//URL所指向的页面B的代码.cs,当然也可以是同一个页面的cs
if(Request.QueryString["event"]=="test")
function xmlHttpPoolFactory()
var a = new xmlHttpPoolFactory();//建立一个全局的工厂实例
var strevent = "";
function refresh(url,interval,div)
{//该方法我用来定时刷新,因为除了SetTimeout还有一些其它活要干
{//因为可能需要刷新的div不只一个,所以利用js的arguments来解决动态参数的问题
{
{
{
if(i!=arguments.length-1)
str = str + "'"+arguments[i]+"',";
else
str = str+"'"+arguments[i]+"'";
}
setTimeout("refresh("+str+")", interval );//定时执行该方法
}
到这就差不多整个专题都结束了,接下来几天,我会把代码稍微调整下,然后传上来。
由于这段时间要上班,实在抽不出时间来整理,如果大家需要可以先拿去看看。不过代码写的有点乱,而且有些功能也没有完善,时间实在太少,大家见谅。
粗糙的工程
相关文章推荐
- Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度
- Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度
- [转]Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度
- Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度
- Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度
- Asp.Net 上传大文件(利用ajax技术显示上传进度)
- ASP.NET MVC利用input通过ajax上传文件
- Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)
- [C#]利用ajax技术显示上传进度[转]
- Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)
- C#结合js 上传文件和删除文件(技术点有:asp.net mvc ,nhibernate,ajax等)
- Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)
- flash+asp.net上传文件,显示进度条
- 本周ASP.NET英文技术文章推荐[02/24 - 03/01]:Silverlight、AJAX、Web Client Software Factory、LINQ、上传文件、GDI+
- 【转】Asp.NET大文件上传组件开发总结(五)---上传进度信息的显示
- Asp.NET大文件上传组件开发总结(五)---上传进度信息的显示
- 【收藏】本周ASP.NET英文技术文章推荐[02/24 - 03/01]:Silverlight、AJAX、Web Client Software Factory、LINQ、上传文件、GDI+
- ASP.Net上传文件带进度条、显示剩余时间!
- Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)
- 利用ajax技术显示上传进度