论坛首页 Java企业应用论坛

三种上传组件的使用与ajax上传

浏览 19097 次
精华帖 (1) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-07-16  
erikchang 写道
edokeh 写道
进度条的话可以用flash+js来做,比如开心网的那个网盘
这个只是个模拟进度条,个人感觉如果只是模拟进度条可以很简单的实现,等服务器端返回成功后才到100%就可以了,实时进度条目前好像还没有很好的解决办法,除非用OCX!


可以做的,但是你的任务一定要是可切分的。我的做法是这样,比如你要在服务器上运算一批数据,然后再前台监控这批数据的处理进度,并且进度每次增长都真正代表服务器运算完成。首先要保证任务可切分,比如这一批数据可以按照记录条数切分,那么你就可以写一个servlet,让它只处理一条数据的运算,然后用ajax提交请求,并提交一个标志着条数据的id ,然后本次运算有几条数据就创建几个ajax请求,并用返回的状态更新进度条。

这样做的缺点是
1、只能针对把单个任务可以切分到各个servlet的需求,如果是传一个文件就不可能作进度条了
2、一比业务占用大量线程,非常影响并发能力,我的处理方式是:在第一个ajax成功返回之后再创建第二个,这样保证统一时间只有一个线程在处理中。

0 请登录后投票
   发表时间:2009-07-16  
smart-upload.jar上传容易造成CPU占用的问题,最好选择commons-fileupload
0 请登录后投票
   发表时间:2009-07-17  
unsid 写道
一致不知道如何用javascript上传文件,总感觉不太可能,因为xmlhttprequest只提供一个发送字符串的接口,并且好像dom里没有方法从File控件中将文件读成字节流,并且javascript里好像没有byte[]或者inputstream对应的数据结构,想不刷新页面如何提交文件?

使用iframe模拟...
jQuery 有一个 AjaxFileUpload插件...
  看他源代码是用iframe模拟的ajax效果...
0 请登录后投票
   发表时间:2009-07-17  
shuaigg.babysky 写道
其实我们所说的ajax上传都是通过在网页内添加一个iframe实现的 , 你仔细看就会发现 , 实际的链接栏刷新了, 只不过本身的页面的内容没有改变 , 上传是在那个隐藏的iframe里进行的 。不过最近发现优酷网上的上传真正的实现了ajax ,不知道是怎么做的 , 期待中。



优酷的上传是靠 flash实现的
0 请登录后投票
   发表时间:2009-07-24  
推荐common-fileupload.使用Struts2的话更简单.
0 请登录后投票
   发表时间:2009-07-26   最后修改:2009-07-26
common-fileupload结合ajax可是实现上传进度显示

common-fileupload 里面提供了一个listener来监听上传的数据 。
可以使用它来显示上传进度
http://www.matrix.org.cn/resource/article/2007-01-08/09db6d69-9ec6-11db-ab77-2bbe780ebfbf.html
0 请登录后投票
   发表时间:2009-12-05  
实现一个功能容易完善不容易的,谢谢楼主的分享了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics