其实个人认为不管是Asp.NET MVC还是普通的Web程式,上传现实进度条这个功能都是很大一部分人都在期待解决的问题。针对B/S模式的上传,如果需要实时的了解到上传的进度的话,这对服务器(IIS)压力是非常大的,当然针对这样子的实现时有的,比如WebbUpload上传组件,NeatUpload等,这都是基于Asp.Net来开发的开源上传组件,他们上传时显示的进度条都是实时,实现的方式是,在页面中创建了一个iframe,定是的来刷新服务器端上传的进度,然后在客户端显示上传进度。<个人不建议采用这样子的方式,因为如果使用该方式的话,会对服务器端资源消耗过大>
个人建议采用下面的上传组件:swfupload,plupload等该系列的上传组件,他们都有一个共同特点,就是即满足了文件上传的进度条,但对服务器的资源消耗是绝对可以满足使用的。swfupload使用的Flash读取文件,然后进行上传,上传的时候Flash进行了一个浏览器端的进度显示;plupload是一个综合了Flash、Silverlight、HTML5的上传组件,他的进度条显示和swfupload基本一个思路。
另外今天博客园有个相关的上传组件,见http://www.cnblogs.com/zengxiangzhan/archive/2010/02/28/1675137.html
上面的资源应该可以满足你。着些实例都是基于Asp.Net的,如果用到Asp.Net MVC的话,个人认为都是可以通用的。
最后给几个Jeffrey Zhao关于上传的文章链接,随便说说:在ASP.NET应用程序中上传文件,不妨来做个尝试:UpdatePanel for ASP.NET MVC,Nikhil更新了UpdateControls组件等。
楼上说的有一定道理
上传显示进度条有多种方法,核心思想是Ajax,Iframe,flash,silverlight,只是具体实现方式不同。
基于ASP.NET MVC的进度条可参考这个例子http://weblogs.asp.net/seanmcalinden/archive/2009/11/15/asynchronous-processing-in-asp-net-mvc-with-ajax-progress-bar.aspx,下载地址是http://weblogs.asp.net/blogs/seanmcalinden/Solutions/AjaxProgressBarExample.zip
建议直接采用第三方的组件即可!
基于jquery的上传组件,看看下面的内容:
demo:http://www.uploadify.com/demo/
download:http://www.uploadify.com/download/
看看是否能符合你的要求!