在Web应用开发中,常常会遇到文件的上传下载模块,下载文件时无论IE还是常用的flashget等下载软件都提供了友好的下载进度显示,可以让用户很清晰的了解到下载的进度,特别是在进行大文件传输时,为用户提供了非常舒服的感觉...可以想像,一个几百M或者上G的文件传输过程没有进度显示,是一件多么让人无法忍受的事情。
然而在如今大多数的服务器上传组件中却没能提供文件上传进度的显示功能或相应开发接口,当进行大文件上传操作或低速网络上传时,长时间的无知状态常常使用户不知所措。
本文(及附上的相应组件)提供了一套基于Java Web的HTTP文件上传进度显示的解决方案,可以应用于所有java的web应用开发中,它由apache的commons-fileupload-1.0组件扩展而来,没有改动任何原有组件代码,进度显示部分完全以一种扩展组件形式出现,你可以随时使用或不使用此显示组件,而无需对原有上传应用程序进行大规模的变动。
[color=darkred]ahxu-commons-fileuploadex-1.0在apache的commons-fileupload-1.0的基础上扩展了以下功能:[/color]
[list]
[*][color=darkred]增加了文件类型检测功能,可以设定上传文件的类型,不被允许上传的文件将不能上传;[/color]
[*][color=darkred]增加了对非文件域表单上传的过滤功能,可以选择或不选择上传接收非文件域的表单内容;[/color]
[*][color=darkred]增加了文件上传进度报告功能,动态报告上传文件的文件名、大小、速度、总时间、剩余时间等,并提供了基于此进度报告功能的一种解决方案;[/color]
[/list]
看下运行效果:
[img]http://dl.iteye.com/upload/attachment/562280/f88fd04e-5a5c-3465-afc2-7dc371da9c1c.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/562284/505161bb-2a59-3187-9a0e-30e03371c8ce.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/562289/e605ac72-f625-397c-9fd4-946a3969970c.jpg[/img]
附件为tomcat工程,直接放到tomcat跑就可以看到效果,工程里面有需要的jar包。
不过保存的位置你自己需要修改一下,修改的文件为receive.jsp,找到调用saveFile这个方法的位置把保存的文件目录位置自己修改一下.