`
bruce.lu
  • 浏览: 34045 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

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

    博客分类:
  • AJAX
阅读更多

WAR 包已更新, 修复中文乱码问题, 并采用了 Reverse Ajax技术

 

功能: 文件上传

特点: 动态显示进度, 百分比, 文件名, 文件长度, 上传速度... 剩下的自己看吧

主要技术: DWR, Apache commons FileUpload

原理: FileUpload实现上传功能, UploadListener 监听上传进度, DWR push (Reverse Ajax) 进度信息并更新页面, 实现无刷新多文件上传

运行环境: Tomcat 6, WAS 6 测试通过

 

WAR下载 见附件

 

 

顺便截个图:

 FileUpload demo

分享到:
评论
10 楼 bruce.lu 2008-10-06  
icewubin 写道

...
是这样的,HTTP长连接本质上相当于一个socket连接,如果采用HTTP长连接的方式最多就多占用一个socket连接,性能应该是可以接受的吧。


Icewubin 兄弟说的也不无道理。 我们在多用户并发这个极端条件下采用HTTP长连接, N个用户就会占用N个socket连接。 Application Server 会不会 connection starving?
9 楼 maike 2008-10-03  
好东西,下来学习
8 楼 icewubin 2008-09-30  
bruce.lu 写道
icewubin 写道
我问个问题,楼主你的进度条的实现,是采用不断发请求到服务端进行确认的方式么?

感谢关注!

YES, sir. 因为Demo 里用的是 Polling 方式获取服务端数据

没猜错的话, 潜台词是想问这种方法是不是很有性能问题。

需要补充的是:
0. 前提是用户要求看到精确的上传进度
1. 如果并发用户数多, 不建议采用, 原因不言而喻
2. DWR 的 Comet 方式可能好一点儿, 但如果条件 0,1 都成立, 估计这种方式也好不到哪去。 Piggyback 方式就更不用提了吧

发这个贴的一个目的是 sharing, 另一个目的是通过讨论能找到更好的方案, 欢迎继续探讨 ;-)

是这样的,HTTP长连接本质上相当于一个socket连接,如果采用HTTP长连接的方式最多就多占用一个socket连接,性能应该是可以接受的吧。
7 楼 bruce.lu 2008-09-30  
icewubin 写道
我问个问题,楼主你的进度条的实现,是采用不断发请求到服务端进行确认的方式么?

感谢关注!

YES, sir. 因为Demo 里用的是 Polling 方式获取服务端数据

没猜错的话, 潜台词是想问这种方法是不是很有性能问题。

需要补充的是:
0. 前提是用户要求看到精确的上传进度
1. 如果并发用户数多, 不建议采用, 原因不言而喻
2. DWR 的 Comet 方式可能好一点儿, 但如果条件 0,1 都成立, 估计这种方式也好不到哪去。 Piggyback 方式就更不用提了吧

发这个贴的一个目的是 sharing, 另一个目的是通过讨论能找到更好的方案, 欢迎继续探讨 ;-)
6 楼 icewubin 2008-09-29  
我问个问题,楼主你的进度条的实现,是采用不断发请求到服务端进行确认的方式么?
5 楼 bruce.lu 2008-09-29  
jclser 写道

还是没有我要的效果,多文件上传为何不能做到一框多选呢?
这样子一个个点好麻烦...

呵呵~请别介意我说的话.

不错的想法, 但这个演示版用的是HTML file控件, 所以就被它限制了。

其实有很多其他的方法上传多文件, 比如dojo最新版本中的基于flash的一个上传控件我就觉得很酷。 而且基于flash还可以做到Client端验证文件大小, 可以google下试试。
4 楼 jclser 2008-09-29  
还是没有我要的效果,多文件上传为何不能做到一框多选呢?
这样子一个个点好麻烦...

呵呵~请别介意我说的话.
3 楼 SpiritRood 2008-09-28  
学习~~~
2 楼 bruce.lu 2008-09-27  
I just updated the WAR package with bug fixed. Please check...

BTW, if you're using Tomcat6, you may need to find uploaded files in it's temp folder, which is D:\tomcat6\temp for me.
1 楼 up2vs 2008-09-27  
cool~
好东西。

相关推荐

    DWR+FileUpload上传

    综上所述,"DWR+FileUpload上传"涉及到的技术点主要包括: 1. DWR框架:用于实现实时、异步的前后端通信。 2. HTML5 File API:提供了文件操作和上传进度的支持。 3. 带进度条的实现:利用DWR的回调机制和HTML5的...

    FileUpload+DWR 多文件上传实例

    原理: FileUpload实现上传功能, UploadListener 监听上传进度, DWR push (Reverse Ajax) 进度信息并更新页面, 实现无刷新多文件上传 运行环境: Tomcat 5/6 测试通过 说明:累计上传文件不超过10M(可以更改...

    fileupload+dwr2+webwork2实现带进度条上传文件

    而FileUpload库可以处理多部分/表单数据,允许用户上传多个文件,并且不受大小限制。它支持流式和内存两种处理模式,可以根据需求选择合适的处理方式,以避免内存溢出问题。 2. **Direct Web Remoting (DWR)**:DWR...

    Dwr+进度条上传文件(支持多文件)

    标题 "Dwr+进度条上传文件(支持多文件)" 指的是使用Direct Web Remoting (DWR) 技术实现的文件上传功能,并且具备显示进度条以及支持同时上传多个文件的能力。DWR是一种在浏览器和服务器之间进行异步通信的...

    采用dwr+Ajax和struts开发文件上传进度条(网络文章)

    采用dwr+Ajax和struts开发文件上传进度条(网络文章)

    DWR+jquery2.x+easyUI1.3.x开发富客户端应用

    ### DWR+jquery2.x+easyUI1.3.x开发富客户端应用 #### 知识点一:技术栈概述 本篇文章将介绍一种基于DWR、jquery2.x以及easyUI1.3.x的技术栈来构建富客户端应用的方法。该技术栈还包括了Struts2.x、Spring3.x等...

    采用dwr+ajax和struts开发文件上传进度条

    ### 采用DWR+AJAX和Struts开发文件上传进度条 #### 一、概述 在Web应用开发中,文件上传是一项常见的功能需求。传统的文件上传方式无法提供良好的用户体验,尤其是对于大文件上传时,用户很难了解到上传进度,进而...

    DWR2.jar + DWR.xml + DWR2.0.dtd + Web.xml

    Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时、双向通信,使得JavaScript可以直接调用Java方法,从而实现了富互联网应用(RIA)的功能。DWR2.0是DWR的一个版本,...

    DWR + Servlet 实现文件上传功能

    本文将深入探讨如何利用DWR与Servlet实现在Web应用程序中添加文件上传功能,并且特别关注如何实现进度条展示。 DWR是一种JavaScript库,它允许在浏览器和服务器之间进行双向通信,使得动态更新页面变得更加容易。...

    利用DWR实现文件上传进度条

    如果文件正在上传(`uploadInfo.inProgress` 为真),则禁用上传按钮和文件选择器,并根据已读取的字节数与总大小计算出进度百分比,更新进度条文本和宽度。如果上传完成,这两个元素的禁用状态将被解除。 `start...

    dwr教程+dwr.jar+util.js+engine.js

    首先,`dwr.jar` 文件是DWR的主要库文件,包含了所有必要的类和接口,使得Java对象能够在浏览器中被调用。它简化了AJAX(Asynchronous JavaScript and XML)应用的开发,通过动态生成JavaScript,将服务器端的Java...

    DWR3 文件上传显示进度条

    标题“DWR3 文件上传显示进度条”指的正是DWR3版本中如何实现在Web界面中展示文件上传的进度条,提供更好的用户体验。DWR3是DWR框架的一个迭代版本,增加了更多的功能和改进,使得与服务器的通信更加高效和流畅。 ...

    Strues2-Dwr 带进度条文件上传

    Struts2-DWR带进度条文件上传是一种在Web应用程序中实现大文件上传并显示实时进度条的技术组合。Struts2是一个流行的Java MVC框架,用于构建企业级Web应用,而DWR(Direct Web Remoting)是一个JavaScript库,允许在...

    ext+dwr+....实现时时聊天

    【标题】:“ext+dwr+...实现时时聊天” 在IT领域,实时聊天功能是许多Web应用程序的核心组成部分,尤其是在社交、协作或客户服务应用中。本文将深入探讨如何利用JSP(JavaServer Pages)和Direct Web Remoting ...

    DWR+Struts+spring+hibernate的订货系统

    DWR+Struts+spring+hibernate的订货系统,自己添加的dwr功能

    dwr实现无刷新带进度条多文件上传(java版)

    在本项目中,"dwr实现无刷新带进度条多文件上传(java版)",主要展示了如何利用DWR来创建一个用户友好的文件上传功能,该功能可以在上传过程中显示进度条,提升用户体验。 1. **DWR基础**:DWR允许JavaScript直接...

    dwr+hibernate+spring 集成 实例

    本实例探讨的是Direct Web Remoting (DWR)、Hibernate和Spring三大技术的集成应用。这三者都是Java世界中的明星组件,各自在不同领域发挥着重要作用。 DWR是一款开源的JavaScript库,它允许Web应用程序在客户端和...

    dwr和简单的文件上传

    在这个场景中,我们将讨论如何使用DWR来实现简单的文件上传功能。 文件上传是Web应用中常见的一种用户交互方式,通常涉及到前端的HTML表单、后端的处理逻辑以及可能的文件存储策略。DWR通过提供对Java方法的远程...

    dwr+spring+hibernate模板.zip

    - 整合DWR与Spring:DWR的配置可以通过Spring的Bean工厂来完成,这样可以利用Spring的依赖注入特性,方便地管理DWR的实例。同时,Spring的AOP可以用来实现DWR方法的安全性和事务管理。 - 整合Hibernate与Spring:...

    疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发(part01)

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax宝典》的第二版。《基于J2EE的Ajax宝典》面市近2年,作为Ajax领域最全面、实用的图书,一直深受读者的好评。全书主要分为三个...

Global site tag (gtag.js) - Google Analytics