如何在网页上实现文件上传进度条?
当用户将文件上传到我的Web应用程序时,我想显示比gif动画更有意义的内容。我有什么可能性?
编辑:我正在使用.Net,但我不介意是否有人向我展示平台不可知的版本。
解决方案
回答
Nilesh Thakkar的CodeProject提供了一个不使用Ajax来执行此操作的好例子。
回答
带有实时进度栏的ASP.NET文件上传
http://mattberseth.com/blog/2008/07/aspnet_file_upload_with_realti_1.html
回答
以下是一些常用JavaScript工具包的几种版本。
- Mootools-http://digitarald.de/project/fancyupload/
- Extjs-http://extjs.com/learn/Extension:UploadForm
回答
在Dino Esposito的《 MSDN杂志》去年7月和8月发表的文章中,可以找到一些特定于.NET的很好的帮助来完成进度条:
使用AJAX进行上下文相关的反馈(2007年7月)
使用ASP.NET AJAX取消服务器任务(2007年8月)
回答
如果我们对所有这些通常如何在客户端工作感兴趣,就是这样:
所有解决方案都通过javascript连接表单,并将表单目标更改为新创建的不可见IFRAME。然后,他们可以自由使用AJAX向服务器请求有关文件的某些状态。
需要使用IFRAME技巧,因为在上载窗口中运行的所有脚本都将挂起,直到请求完成为止,此时文件已完全上载。
回答
我尝试了各种技术,并且使用SWFUpload取得了最大的成功。
我们可以使用Javascript创建SWFUpload对象并与之交互,但是使用(隐藏的)Flash文件进行文件选择,上传和上传进度监视。我们可以指定范围广泛的Javascript事件处理程序(" uploadStarted"," uploadProgress"," uploadError"等),Flash会在上传过程中调用它,从而使其非常灵活。它还实现了文件队列,因此可以很好地处理单个或者多个文件。
链接:
- API文档
- 演示版
- 资料下载
回答
jQuery UI进度栏http://jqueryui.com/demos/progressbar/