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

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

Posted on 2006-07-17 09:48 往事如风 阅读(98) 评论(4)   编辑  收藏 引用 收藏至365Key 所属分类: Javajavascript AJAX
  拜读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 " " 上传失败. " );
                }

  有什么新的想法,欢迎大家留言给我,一起把这个东东做好,发展,才是硬道理。
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值