惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
月光博客
月光博客
Y
Y Combinator Blog
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
雷峰网
雷峰网
美团技术团队
T
Tailwind CSS Blog
小众软件
小众软件
量子位
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Recent Announcements
Recent Announcements
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 李小鱼

日语学习网站 大连的夜 郁闷的每一天!!!! .net关于给数据库传参 j2ee视频下载地址 java学习网站 (原)关于存储过程事务的写法 (转)java关于split分割字符串,空的字符串不能得到的问题 (转)判断浏览器的js代码 (转)一段操作Select的JS代码 命令行下的电影 一些功能实现事例 (转)关于乱码问题 关于google查询时 输入框下边显示结果的效果 (转)老紫竹的几句话 (转)Tomcat是如何配置的 (转)Tomcat是如何配置的 (转)关于数据库连接池的形象比喻
(转)带进度条的文件上传(java+ajax,附源码)
李小鱼 · 2008-07-14 · via 博客园 - 李小鱼

拜读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""上传失败.");
                }

  有什么新的想法,欢迎大家留言给我,一起把这个东东做好,发展,才是硬道理。
代码请到http://blog.csdn.net/pangpangde/archive/2006/08/09/1042741.aspx下载