注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

_

_

 
 
 

日志

 
 

带进度条的文件上传(java+ajax,附源码)【转】  

2011-08-16 23:51:35|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://www.cnblogs.com/zxub/archive/2006/07/17/452625.html

写的很好,很有开源精神啊:

 

带进度条的文件上传(java+ajax,附源码)【原创】

Posted on 2006-07-17 09:48 往事如风 阅读(13578) 评论(57) 编辑 收藏

拜读ahxu兄关于上传文件显示进度的文章,理解了其原理,由于ahxu兄那个不开源,所以为了以后扩展,只好自己写了,否则我是不会重新发明轮子的。
首先,去apache的官网下了个最新的commons-fileupload-1.1.1.jar及其源码,看了一下,发现与原来的版本有些出入,仔细看了看commons-fileupload-1.1.1的源代码,理解了其整个过程,在inputStream那做下手脚,就可以取到进度了,这里,要感谢ahxu兄的贡献。
ok,开始进入正题,新版本中,用的是ServletFileUpload,看了下源码,写一个与其相似的类,只是重写了parseRequest方法,以及附加一些从ahxu兄那抠出来的方法。
在写代码的时候,还要用到关于servlet的包servlet-api.jar。
写完后调试的过程中,老报错:java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream,后来一查才知道少了commons-io-1.2.jar,加上后,就ok了。
关于获取及显示进度部分,用了我原来自己写的一个ajax的应用架构,从中抽取了部分代码出来,注意,js文件只适用于UTF-8编码的页面,因为现在我只写UTF-8编码的页面了,国际化方便。
下面给个截图出来
下面给出源码:
处理文件上传的
使用的例子
progressUpload.jar中,包含了commons-fileupload-1.1.1.jar,servlet-api.jar,commons-io-1.2.jar,在progressUpload.jar中,还包含一个属性文件,里面是一些默认配置,可根据自己的需要修改。
由于有源码,怎么用可以自己看源码,此外,那个例子中也写了,在此不再赘述。例子中只取到了FileItem,再将item保存一下就ok了,示例代码:

File upFile = new File(remoteFilePath);
try
                {
                    item.write(upFile);
                    fileInfo.put("infotip", "上传成功.");
                }
catch (java.lang.Exception e)
                {
                    fileInfo.put("infotip", "上传失败.");
                }

有什么新的想法,欢迎大家留言给我,一起把这个东东做好,发展,才是硬道理。

  评论这张
 
阅读(877)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017