首页 新闻 会员 周边

ASP.NET MVC中如何实现图片上传显示进度条(百分比)

0
悬赏园豆:200 [已解决问题] 解决于 2010-03-02 11:14

RT,想问问思路。

志在必得Shaun的主页 志在必得Shaun | 初学一级 | 园豆:10
提问于:2010-02-28 20:48
< >
分享
最佳答案
0

其实个人认为不管是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 MVCNikhil更新了UpdateControls组件等。

收获园豆:120
西越泽 | 专家六级 |园豆:10775 | 2010-02-28 23:48
其实我几乎把网上能查得到的组件都看过一遍。其中有个ASP.NET MVC的组件是收费的,demo版的存在浏览器兼容问题;flex的又不能准确反映上传进度;jQuery以及ASP.NET2.0的组件又不知道怎么应用到ASP.NET MVC中。看了不少上传组件,对于上传进图条的实现思路有个大概的了解了,但是又感觉在ASP.NET MVC里实现起来有点力不从心。
志在必得Shaun | 园豆:10 (初学一级) | 2010-03-02 11:14
其他回答(3)
0

楼上说的有一定道理

上传显示进度条有多种方法,核心思想是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

收获园豆:60
查尔斯 | 园豆:3832 (老鸟四级) | 2010-03-01 01:17
0

建议直接采用第三方的组件即可!

收获园豆:10
风影极光 | 园豆:1573 (小虾三级) | 2010-03-01 09:28
0

基于jquery的上传组件,看看下面的内容:

demo:http://www.uploadify.com/demo/

download:http://www.uploadify.com/download/

看看是否能符合你的要求!

收获园豆:10
langford | 园豆:710 (小虾三级) | 2010-03-01 13:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册