日期:2014-05-20  浏览次数:20746 次

基于ajax技术AJAX Upload实现的带进度条的上传例子
最近找到一             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就成了

------解决方案--------------------
顶:
renhefeng_1983@yeah.net
------解决方案--------------------
up
wl1985@163.com
------解决方案--------------------
强顶
feifeirao@126.com
------解决方案--------------------
gougou3250@hotmail.com
prototype与dwr没有可比性 prototype是ajax基础框架,利用prototype给一些js对象加了一些操作,同类型的还有modello这些
dwr是gui框架,doju等都是这类框架

有一点没弄明白,后发送的请求是怎么跟负责上传的那个servlet交互的.
------解决方案--------------------
dswords@gmail.com
------解决方案--------------------
我也想要,麻烦发一下谢谢guoht@vip.sina.com
------解决方案--------------------
kidfang at 21cn.com,
抽不出时间去研究,LZ是尽量完美地实现么
------解决方案--------------------
我也想要 麻烦 tongfan@163.com
------解决方案--------------------
tafse@126.com
谢谢
------解决方案--------------------
penghao122@126.com


------解决方案--------------------
ilysyt@163.com

能不能帮我再发一份...谢谢楼主
------解决方案--------------------
raymond323@126.com
------解决方案--------------------
laixiangh@163.com
谢谢!
------解决方案--------------------
LZ 我也要
a_xiaoming@163.com
谢谢

------解决方案--------------------
我也要wang123kui@gmail.com
------解决方案--------------------
顶!
zhzhqi102@sina.com