基于ajax技术AJAX Upload实现的带进度条的上传例子

djpsunday 2007-08-17 04:09:08
最近找到一 2006年底Google了一下AJAX Upload实现,结果没有发现很完整的Java实现。硕果仅存的就是TELIO公司的Pierre-Alexandre发表的《AJAX Upload progress monitor for Commons-FileUpload Example》文中提供的ajax-upload-1.0.war。

虽然上文中完成Upload工作的是Apache的Common-FileUpload组件,但在其代码中所使用的FileUpload1.1版本并没有1.2版本所提供的上传处理Listener功能,这就对检测文件上传情况造成了困难。我想正是这个原因致使Pierre-Alexandre使用了DWR+MonitoredDiskFileItem、MonitoredDiskFileItemFactory类(分别继承DiskFileItem、DiskFileItemFactory) 的方式:前者负责在web客户端进行Remote Call;后者在进行文件数据读取时统计数据总量、读取数据量、处理文件总数,并保存于Session中,以供web客户端通过DWR远程调用 UploadMonitor类的getUploadInfo方法进行轮询(Poll)。

从本人观点出发,Pierre-Alexandre实现的不足之处:
1.没有用户取消上传功能;
2.完全的DWR实现,没有使用Prototype,对于不会使用DWR的开发者来讲有一定的知识局限性,而且由于DWR的个性而造成不便将此实现集成到项目中。



Prototype+Servlet的实现:



Prototype+Servlet的Example



所以出于研究Prototype之目的,本人经过仔细思考,尝试实现了一个Prototype+Servlet的简单Example。其工作流程很简单:
1.在Form提交上传文件Field的同时,使用AJAX周期性地从Servlet轮询上传状态信息;
2.然后,根据此信息更新进度条和相关文字,及时反映文件传输状态;
3.如果用户取消上传操作,则进行相应的现场清理工作:删除已经上传的文件,在Form提交页面中显示相关信息;
4.如果上传完毕,在Form提交页面中显示已经上传的文件内容(或链接),也可以与一些AJAX SlideShow应用结合在一起。
个基于ajax上传组件的例子,下载下来布署很好用
有需要的朋友在跟贴后留下邮件地址
我会在下周末抽时间给大伙发源码及布署文件
布署都是WAR文件,放在TOMCAT就成了
...全文
1904 166 打赏 收藏 转发到动态 举报
写回复
用AI写文章
166 条回复
切换为时间正序
请发表友善的回复…
发表回复
caijingli2 2011-12-14
  • 打赏
  • 举报
回复
还有没有啊,是不是来晚了.
15882338153@yeah.net
谢谢了,急需啊
java_xiaowei 2009-09-29
  • 打赏
  • 举报
回复
谢了,学习一下。
xuxiaowei02@gmail.com
weifeng9703 2008-12-17
  • 打赏
  • 举报
回复
xiaoshuaideqq@163.com谢谢
tigerwuaq 2008-05-02
  • 打赏
  • 举报
回复
crabboyaq@163.com
z2681993 2008-03-19
  • 打赏
  • 举报
回复
感谢楼主~~~
zhuhuadong1983@163.com
discover7 2008-03-19
  • 打赏
  • 举报
回复
还能发吗 ? 给我发一份行吗.
discover_7@163.com
谢谢楼主哈!!
karakoram2006 2008-03-14
  • 打赏
  • 举报
回复
lz的这贴真是持久呐,从2006跨越奥运年哪。。^_^
顶一个,我也来一份,谢谢!!
918coffee@sina.com
mengyuhs 2008-03-13
  • 打赏
  • 举报
回复
楼主,麻烦给我发一份,非常感谢!
mengyuhs@163.com
junlyorange 2008-03-13
  • 打赏
  • 举报
回复
junlyorange@yahoo.com 谢谢!




请输入... 2008-03-13
  • 打赏
  • 举报
回复
yfe008@126.com
感谢
小五五 2008-03-13
  • 打赏
  • 举报
回复
这个帖子还有效吗?
如果楼主不来的话,其它已经收到的朋友能否转发一下呢?
andy_wfei@sina.com
li_hy2002 2008-03-07
  • 打赏
  • 举报
回复
谢谢~我也想要一份
li_hy2004@163.com
英有尽有 2008-03-05
  • 打赏
  • 举报
回复
感谢~~~
xuying4001@163.com
qiqi13733801551 2008-03-05
  • 打赏
  • 举报
回复
qiqi13733801551@163.com
给我也发一份吧!谢谢!
a1405 2008-03-05
  • 打赏
  • 举报
回复
这么多人啊。不知道能轮到我不。
1128friends@163.com
pengsky2002 2008-03-05
  • 打赏
  • 举报
回复
cp@skst.cn
感谢你的共享
chengchaog 2008-03-04
  • 打赏
  • 举报
回复
chengchaog@yeah.net
谢谢
lario 2008-03-04
  • 打赏
  • 举报
回复
我....
lario@sina.com



谢谢
tjgoahead 2008-03-03
  • 打赏
  • 举报
回复
Me Too~
heihei~!
请给我发一份~!3ku~!
tjgoahead@yahoo.com.cn
luckyfung 2008-02-22
  • 打赏
  • 举报
回复
我也要
luckyfung@163.com
加载更多回复(146)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧