- 浏览: 141383 次
- 性别:
- 来自: 苏州
-
文章分类
最新评论
-
yaoweinan:
没有.....
Itext 5.4.0 生成PDF中文不报错,Adobe 不显示 -
马文涛:
我也发现这个问题了,你找到解决办法了吗?
Itext 5.4.0 生成PDF中文不报错,Adobe 不显示 -
coding1688:
博主辛苦了,也可以参考一下这篇文章:四步轻松搞定瀑布流布局ht ...
瀑布流布局个人实现 -
yaoweinan:
嘿嘿,那个只是最笨的办法,实际上是不行的,现在一般的都有sw ...
文件上传(无刷新,带进度条,带网速)下载完整 -
javazzu:
我为啥不行呢
文件上传(无刷新,带进度条,带网速)下载完整
*该程序主要解决带进度,无刷新,带网速计算的上传功能,简单明了,不过是本人愚拙的做法,若有更好的做法介绍介绍
java文件
package com.servlet; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItemIterator; import org.apache.commons.fileupload.FileItemStream; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.ProgressListener; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.jdom.Document; import org.jdom.Element; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; public class Upload extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("application/xml"); final PrintWriter out=resp.getWriter(); XMLOutputter pw=new XMLOutputter(Format.getPrettyFormat().setEncoding("iso-8859-1")); Document doc=(Document)req.getSession().getAttribute("msg"+req.getSession().getId())==null?new Document():(Document)req.getSession().getAttribute("msg"+req.getSession().getId()); pw.output(doc,out); System.out.println(req.getSession().getAttribute("msg"+req.getSession().getId())); } public void doPost(final HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); final PrintWriter out=response.getWriter(); ServletFileUpload upload = new ServletFileUpload(); upload.setSizeMax(100*1024*1024); ProgressListener progressListener = new ProgressListener(){ long lastBytes=0; long lastTime=System.currentTimeMillis(); public void update(long pBytesRead, long pContentLength, int pItems) { if (pContentLength == -1) { System.out.println("So far, " + pBytesRead + " bytes have been read."); } else { long stepByte=(pBytesRead-lastBytes)/1024; String bit=""; double stepTime=0f; stepTime=(double) ((System.currentTimeMillis()-lastTime)/1000.0); bit=Math.round(stepByte/stepTime)+"KB/S"; Document doc=new Document(); Element root=new Element("root"); doc.addContent(root); Element file=new Element("file"); file.setAttribute("id",pItems+""); file.setAttribute("uploadBytes", pBytesRead+""); file.setAttribute("totalBtyes", pContentLength+""); file.setAttribute("bit", bit); root.addContent(file); request.getSession().setAttribute("msg"+request.getSession().getId(), doc); } } }; upload.setProgressListener(progressListener); try { FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream item = iter.next(); InputStream stream = item.openStream(); if (item.isFormField()) { } else { int tmp=item.getName().lastIndexOf("\\")==-1?0:item.getName().lastIndexOf("\\"); if(item.getName().substring(tmp)!=null&&!item.getName().substring(tmp).equals("")){ String fileName="D:\\upload\\"+item.getName().substring(tmp); FileOutputStream tempFile=new FileOutputStream(fileName); int buf; while((buf=stream.read())!=-1){ tempFile.write(buf); tempFile.flush(); } tempFile.close(); } } }} catch (FileUploadException e) { e.printStackTrace(); } out.close(); } }
jsp文件
<%@ page language="java" contentType="text/html; charset=gb2312" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="jquery-1.5.1.min.js"></script> <title>带进度的文件上传</title> </head> <body> <div style="width:500px; margin:0 auto;"> <form action="servlet/Upload" id="form1" name="form1" encType="multipart/form-data" method="post" target="hidden_frame" onsubmit="checkUpload();"> <input type="file" id="file1" name="file1" style="width:450"/> <input type="submit" value="上传文件"/> </form> </div> <iframe name="hidden_frame" id="hidden_frame" style="display: none;"></iframe> <div style="width: 500px;height:80px;margin:auto;text-align: center;"> <div id="msg" style="float: right;"></div> <div id="process" style="background-image: url(progress-bg.gif);width: 0px;height: 20px;background-repeat: repeat-x"></div> </div> </body> </html> <script type="text/javascript"> var startTimer; function checkUpload(){ startTimer=setInterval(function(){ $.ajax({url: "servlet/Upload?ran="+Math.random(),dataType :"xml",success:callback}); },1000); } function callback(msg) { var node=$(msg).find("file"); var uploadBytes=parseInt(node.attr("uploadBytes")); var totalBtyes=parseInt(node.attr("totalBtyes")); var bit=node.attr("bit"); var percentage=Math.round(uploadBytes/totalBtyes*100); tmp="已上传"+percentage+"% 网速:"+bit; var wid=parseInt(uploadBytes/totalBtyes)*300; $("#process").css("width",percentage+"%"); $("#msg").html("<font color=red>"+tmp+"</font>"); if(percentage==100){ if(startTimer!=null){ clearInterval(startTimer); } } } </script>
另外需要jdom.jar 包 和jquery.js
实现无刷新带进度条上传文件(可测网速)
- upload.rar (369.4 KB)
- 下载次数: 142
评论
2 楼
yaoweinan
2012-07-01

1 楼
javazzu
2012-06-28
我为啥不行呢
发表评论
-
关于java中对象属性值的校验的思考
2013-04-15 14:09 1578现在在java 开发中经常会遇到要交验某个obje ... -
Ant 使用小结
2013-03-01 15:25 836以前的项目中都没有用到过ant,都是手动打war,复制cop ... -
java 动态编译及执行实现Web式java开发
2012-11-29 17:05 957废话不说,让大家等了这么久,先看看截图 : 编译 ... -
Spring mvc 小编(配置)
2012-09-26 15:58 1028上一篇讲述了Spring mvc 中常用的几个注解标示,这章 ... -
Spring mvc 小编(注解)
2012-09-21 17:16 1100前不久做web 项目用过spring mvc 觉着这玩意挺不错 ... -
jquery easyui 存储个人解读
2012-02-23 15:00 822这两天看了一下jquery easyui ,许多地方甚感不明 ... -
response.setContentType("") 小抄本
2012-02-18 10:00 850response.setContentType(" ... -
瀑布流布局个人实现
2012-02-14 15:48 1892目前互联网瀑布流的布局方式已经比比皆是,我也自己写了个东东,写 ... -
ftp文件上传 、下载
2012-02-09 13:36 1582使用spring mvc +commons-net-1.4.1 ... -
el 标记
2012-02-06 09:42 803EL表达式 1、EL简介 1)语法结构 ... -
无配置文件 搭建
2012-02-04 14:16 1709今天搞了个spring3.1+servlet3 无配置项目,事 ... -
js copy
2011-12-17 09:23 1107事件源对象 event.srcElement.tag ... -
汉字转拼音
2011-09-15 15:56 1286/** * * 功能:汉字转化为拼音 * **/funct ... -
linux 装jdk +tomcat
2011-09-10 00:12 8561、安装JDK的步骤如下: 1)下载j2sdk ,如jdk- ... -
js中汉字+字母混合求长度
2011-09-09 09:14 839谁写的啊 写的太好了 简单实用 String.protot ... -
hibernate 延迟加载的问题终于解决了
2011-09-06 16:00 968弄了几天 hibernate3 结果被联级加载时候延迟加载搞 ... -
一个基于hibernate的超类(仿springside) 已被以后借鉴
2011-09-06 09:43 880package com.dao; import java.i ... -
关于spring中 init-method中有注入对象的解决
2011-09-02 09:55 824今天我想在spring 启动时候检查一些基本的东西,需要自行运 ... -
Listener
2011-09-01 17:01 782Listener 是Servlet的监听器,它可以监听客户端的 ... -
js 同步请求文件
2011-06-24 11:49 1301/* js 同步请求文件 只适合于IE */ funct ...
相关推荐
这个“文件上传(无刷新,带进度条,带网速)下载完整 upload”压缩包提供了一个完整的上传程序示例,非常适合开发者学习和参考。 首先,我们要理解什么是Ajax(Asynchronous JavaScript and XML)。Ajax是一种在不...
在IT行业中,文件上传功能是网站和应用程序中不可或缺的一部分,特别是在社交、教育、协作和办公应用中。"类似于网易附件上传源码" 提供了一种实现文件上传的解决方案,这通常涉及到前端用户界面的设计,后端服务器...
这些数据可能包括上传速度、下载速度、已发送和接收的数据总量等。 3. **MemInfo.py** - 此模块关注的是内存使用情况。在Linux中,可以通过`/proc/meminfo`文件获取内存统计信息,如总内存、已用内存、空闲内存、...
1.[*修复]修复后台某文件出现任意下载漏洞【感谢乌云[haitaowuyun]发现】 2.[*修复]修复前台存在的SQL注入风险漏洞【感谢乌云[语邑尘]发现】 3.[*修复]修复前台存在的xss跨站脚本攻击漏洞【感谢乌云[evil]发现】 4....
qt 一个基于Qt Creator(qt,C++)实现中国象棋人机对战.
热带雨林自驾游自然奇观探索
冰川湖自驾游冰雪交融景象
C51 单片机数码管使用 Keil项目C语言源码
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
前端分析-2023071100789s12
Laz_制作了一些窗体和对话框样式.7z
1、文件内容:ocaml-docs-4.05.0-6.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/ocaml-docs-4.05.0-6.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
学习笔记-沁恒第六讲-米醋
工业机器人技术讲解【36页】
内容概要:本文档详细介绍了在 CentOS 7 上利用 Docker 容器化环境来部署和配置 Elasticsearch 数据库的过程。首先概述了 Elasticsearch 的特点及其主要应用场景如全文检索、日志和数据分析等,并强调了其分布式架构带来的高性能与可扩展性。之后针对具体的安装流程进行了讲解,涉及创建所需的工作目录,准备docker-compose.yml文件以及通过docker-compose工具自动化完成镜像下载和服务启动的一系列命令;同时对可能出现的问题提供了应对策略并附带解决了分词功能出现的问题。 适合人群:从事IT运维工作的技术人员或对NoSQL数据库感兴趣的开发者。 使用场景及目标:该教程旨在帮助读者掌握如何在一个Linux系统中使用现代化的应用交付方式搭建企业级搜索引擎解决方案,特别适用于希望深入了解Elastic Stack生态体系的个人研究与团队项目实践中。 阅读建议:建议按照文中给出的具体步骤进行实验验证,尤其是要注意调整相关参数配置适配自身环境。对于初次接触此话题的朋友来说,应该提前熟悉一下Linux操作系统的基础命令行知识和Docker的相关基础知识
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
网络小说的类型创新、情节设计与角色塑造
毕业设计_基于springboot+vue开发的学生考勤管理系统【源码+sql+可运行】【50311】.zip 全部代码均可运行,亲测可用,尽我所能,为你服务; 1.代码压缩包内容 代码:springboo后端代码+vue前端页面代码 脚本:数据库SQL脚本 效果图:运行结果请看资源详情效果图 2.环境准备: - JDK1.8+ - maven3.6+ - nodejs14+ - mysql5.6+ - redis 3.技术栈 - 后台:springboot+mybatisPlus+Shiro - 前台:vue+iview+Vuex+Axios - 开发工具: idea、navicate 4.功能列表 - 系统设置:用户管理、角色管理、资源管理、系统日志 - 业务管理:班级信息、学生信息、课程信息、考勤记录、假期信息、公告信息 3.运行步骤: 步骤一:修改数据库连接信息(ip、port修改) 步骤二:找到启动类xxxApplication启动 4.若不会,可私信博主!!!
在智慧城市建设的大潮中,智慧园区作为其中的璀璨明珠,正以其独特的魅力引领着产业园区的新一轮变革。想象一下,一个集绿色、高端、智能、创新于一体的未来园区,它不仅融合了科技研发、商业居住、办公文创等多种功能,更通过深度应用信息技术,实现了从传统到智慧的华丽转身。 智慧园区通过“四化”建设——即园区运营精细化、园区体验智能化、园区服务专业化和园区设施信息化,彻底颠覆了传统园区的管理模式。在这里,基础设施的数据收集与分析让管理变得更加主动和高效,从温湿度监控到烟雾报警,从消防水箱液位监测到消防栓防盗水装置,每一处细节都彰显着智能的力量。而远程抄表、空调和变配电的智能化管控,更是在节能降耗的同时,极大地提升了园区的运维效率。更令人兴奋的是,通过智慧监控、人流统计和自动访客系统等高科技手段,园区的安全防范能力得到了质的飞跃,让每一位入驻企业和个人都能享受到“拎包入住”般的便捷与安心。 更令人瞩目的是,智慧园区还构建了集信息服务、企业服务、物业服务于一体的综合服务体系。无论是通过园区门户进行信息查询、投诉反馈,还是享受便捷的电商服务、法律咨询和融资支持,亦或是利用云ERP和云OA系统提升企业的管理水平和运营效率,智慧园区都以其全面、专业、高效的服务,为企业的发展插上了腾飞的翅膀。而这一切的背后,是大数据、云计算、人工智能等前沿技术的深度融合与应用,它们如同智慧的大脑,让园区的管理和服务变得更加聪明、更加贴心。走进智慧园区,就像踏入了一个充满无限可能的未来世界,这里不仅有科技的魅力,更有生活的温度,让人不禁对未来充满了无限的憧憬与期待。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。