论坛首页 Web前端技术论坛

DWR + FileUpload 多文件上传实例, 进度条 百分比 上传速度 文件大小...

浏览 32336 次
精华帖 (11) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2008-10-23  
icewubin 写道

...
这无非就是做选择题:

1.绝大多数的选择就是,像EXT的例子那样,做一个假的进度条,简单高效。(目前我们公司用的就是这种,背景是客户上传的都是小文件,不超过30K,即使进度条是假的,用户也发觉不了)

2.再加一个长连接,用来实时推送当前的真实进度。

3.如果第二种方式有技术难度或者多一个长连接也不能接受的话,建议直接使用Flex的文件上传组件,功能强大的非常多,还不用自己开发。

4.局域网使用,并发数不是很高的情况下,用楼主的代码也没有太大的问题。

都是出于开发成本的考虑,做的太简单不能应用到互联网上,做的太复杂,又不可能做的有Flex组件那样强,需要一个折中,不就是做选择题么。

1. 嗯, 假的也是个办法, 但碰到客户要求看到百分比的...
2. 这办法看来最可行, 但长连接在DWR里也是有几种选择的, 我个人觉得首先让Reverse Ajax enabled, 然后 A:如果觉得长连接可以接受, 用Full Streaming Mode 或 Early Closing Mode; B: 如果干脆不喜欢长连接, 用Polling Mode
3. Flex 需要客户端有flash player, 其实dojo新加的文件上传组件也是这样做的(也是我个人比较喜欢的),原理是javascript和flash交互, 这种方式还有个好处, 可以在客户端直接判断文件大小。 但对于brower端没有flash player的用户他就得安装。 不要笑, 我也知道flash player 在90%以上的browers里都安装了。注意:不是100%。 不知道你有没有碰到过那样的客户, 我碰到过: 他就需要seamless & smooth!
0 请登录后投票
   发表时间:2008-10-23  
kaki 写道
Ext里面有一个现成的,做的很好楼主可以看看。

很久前见过Ext的上传组件, 就是个图片在那乱闪, 好像不能百分比显示。 有空再看看, 多谢了
0 请登录后投票
   发表时间:2008-10-23  
coolstar648 写道
楼主,问你个问题。
你这个包里用到的servlet是哪个版本的?我用了我的servlet架包后报错。

建议用tomcat6\lib\servlet-api.jar
这个可以的, 因为用这个测试过。
1 请登录后投票
   发表时间:2008-10-24  
WAR 包已更新, 修复中文乱码问题, 并采用了 Reverse Ajax 技术
0 请登录后投票
   发表时间:2008-11-09  
这个我在tomcat下访问没有问题,可是我把apache和tomcat整和之后再访问就问题了,弹出个 javascript的框"Not Found"!希望你看一下,我等待!
0 请登录后投票
   发表时间:2008-11-19  
多用户同时上传的情况下怎么解决?
0 请登录后投票
   发表时间:2009-02-11  
bruce.lu 写道

icewubin 写道

bruce.lu 写道

icewubin 写道
... 是这样的,HTTP长连接本质上相当于一个socket连接,如果采用HTTP长连接的方式最多就多占用一个socket连接,性能应该是可以接受的吧。Icewubin 兄弟说的也不无道理。 我们在多用户并发这个极端条件下采用HTTP长连接, N个用户就会占用N个socket连接。 Application Server 会不会 connection starving? 用户在上传的时候本身就是一个HTTP长连接,如果说为了界面友好,多占一个HTTP长连接而已。 多消耗一倍的资源而已,只是连接数资源,带宽占用很小。 就是一个简单的取舍问题,对吧。 先不管这个方案真的在极端情况下有多烂,但是至少是可用的,如果访问量真的可喜的达到极端情况了,那就可以考虑其他方案应对了。 如果用你现在的方案,很快就会达到极端情况,也就是说,不同的方案,并发数负载不一样。 Hi, Icewubin, 能否详细给出你能想到的最好的方案? 谢谢!

。。。
0 请登录后投票
   发表时间:2009-02-16  
是否有源代码啊
0 请登录后投票
   发表时间:2009-04-12  

上传的文件保存在了Tomcat 5.5\temp目录下~ 
 File file = new File(this.getFileName(item.getName())); //这个路径Windows是: C:\Documents and Settings\Administrator\Local Settings\Temp
     if (file.exists()) {
      file.delete();
     }
     OutputStream out = new FileOutputStream(file);
     bStream.writeTo(out);


 怎么设置保存路径在我想要的地方, 我对操作流不太懂。

0 请登录后投票
论坛首页 Web前端技术版

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