- 浏览: 138306 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
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
嘿嘿,那个只是最笨的办法,实际上是不行的,现在一般的都有swf,这个可以实际检测到上传的进度的
1 楼
javazzu
2012-06-28
我为啥不行呢
发表评论
-
关于java中对象属性值的校验的思考
2013-04-15 14:09 1556现在在java 开发中经常会遇到要交验某个obje ... -
Ant 使用小结
2013-03-01 15:25 819以前的项目中都没有用到过ant,都是手动打war,复制cop ... -
java 动态编译及执行实现Web式java开发
2012-11-29 17:05 922废话不说,让大家等了这么久,先看看截图 : 编译 ... -
Spring mvc 小编(配置)
2012-09-26 15:58 1016上一篇讲述了Spring mvc 中常用的几个注解标示,这章 ... -
Spring mvc 小编(注解)
2012-09-21 17:16 1072前不久做web 项目用过spring mvc 觉着这玩意挺不错 ... -
jquery easyui 存储个人解读
2012-02-23 15:00 797这两天看了一下jquery easyui ,许多地方甚感不明 ... -
response.setContentType("") 小抄本
2012-02-18 10:00 829response.setContentType(" ... -
瀑布流布局个人实现
2012-02-14 15:48 1854目前互联网瀑布流的布局方式已经比比皆是,我也自己写了个东东,写 ... -
ftp文件上传 、下载
2012-02-09 13:36 1536使用spring mvc +commons-net-1.4.1 ... -
el 标记
2012-02-06 09:42 769EL表达式 1、EL简介 1)语法结构 ... -
无配置文件 搭建
2012-02-04 14:16 1666今天搞了个spring3.1+servlet3 无配置项目,事 ... -
js copy
2011-12-17 09:23 1090事件源对象 event.srcElement.tag ... -
汉字转拼音
2011-09-15 15:56 1272/** * * 功能:汉字转化为拼音 * **/funct ... -
linux 装jdk +tomcat
2011-09-10 00:12 8401、安装JDK的步骤如下: 1)下载j2sdk ,如jdk- ... -
js中汉字+字母混合求长度
2011-09-09 09:14 799谁写的啊 写的太好了 简单实用 String.protot ... -
hibernate 延迟加载的问题终于解决了
2011-09-06 16:00 945弄了几天 hibernate3 结果被联级加载时候延迟加载搞 ... -
一个基于hibernate的超类(仿springside) 已被以后借鉴
2011-09-06 09:43 865package com.dao; import java.i ... -
关于spring中 init-method中有注入对象的解决
2011-09-02 09:55 808今天我想在spring 启动时候检查一些基本的东西,需要自行运 ... -
Listener
2011-09-01 17:01 764Listener 是Servlet的监听器,它可以监听客户端的 ... -
js 同步请求文件
2011-06-24 11:49 1283/* js 同步请求文件 只适合于IE */ funct ...
相关推荐
这个“文件上传(无刷新,带进度条,带网速)下载完整 upload”压缩包提供了一个完整的上传程序示例,非常适合开发者学习和参考。 首先,我们要理解什么是Ajax(Asynchronous JavaScript and XML)。Ajax是一种在不...
为了解决这一问题,ASP(Active Server Pages)结合AJAX(Asynchronous JavaScript and XML)技术,实现了无刷新文件上传,同时还提供了进度条显示,提高了交互性。本文将深入探讨这种技术的实现原理及步骤。 一、...
ajax + asp无刷新文件异步上传程序,并有进度条实时显示上传进度!ajax + asp无刷新文件异步上传程序,并有进度条实时显示上传进度!ajax + asp无刷新文件异步上传程序,并有进度条实时显示上传进度!ajax + asp无...
无刷新带进度条文件上传是现代网页应用中常见的一种用户体验优化技术,主要应用于大文件上传或者需要用户实时了解上传进度的场景。这种技术的核心在于利用Ajax异步通信和HTML5的File API,使得用户在上传文件时无需...
DWR(Direct Web Remoting)是一种Java技术,用于在浏览器和服务器之间实现实时、双向通信,无需页面刷新。...通过分析和运行提供的源码,开发者能够深入掌握DWR实现多文件无刷新上传的核心技术和实现步骤。
在现代Web应用中,"Ajax无刷新文件上传(带进度条)"是一个常见且重要的功能,它极大地提升了用户体验。Ajax(Asynchronous JavaScript and XML)技术使得网页可以在不重新加载整个页面的情况下与服务器交换数据并更新...
`java+jquery`的文件上传技术结合了后端的Java服务器处理和前端的jQuery库来实现无刷新的用户体验,同时提供上传进度条,实时反馈文件上传状态。本文将详细讲解这个主题。 首先,让我们了解Java文件上传的基础。在...
JSP批量上传,实现多文件无刷新上传(带有进度条)。 程序加了些须的验证,目前只能上传图片。 压缩文件为Eclipse项目文件,直接导入即可使用 预览图片地址: ...注:所有文件保存到项目文件夹下的uplaod文件夹下,...
本资源提供的"非常漂亮ajax 上传无刷新 带进度条源代码"正是利用了Ajax的核心特性,实现了文件上传过程中无刷新的用户体验,并且带有进度条显示,极大地提升了用户交互性和满意度。 首先,让我们了解一下Ajax上传的...
在现代Web应用中,用户界面的流畅性和交互性至关重要,"Ajax无刷新上传文件带进度条"技术就很好地满足了这一需求。Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许在不重新加载整个页面的...
在ASP中实现无刷新上传并带有进度条的功能,可以极大提升用户体验,避免用户在文件上传过程中等待页面刷新,显示实时的上传进度能够让用户知道操作的状态。 首先,我们需要了解这个功能的实现原理。无刷新上传通常...
HTML5、JavaScript(JS)和AJAX技术的结合使得现代网页可以实现无刷新上传文件,同时还能展示上传进度条,极大地提升了用户体验。这种技术在Web应用中被广泛应用,特别是那些需要用户频繁上传文件的场景,如社交媒体...
综上所述,"ASP无刷新批量上传文件插件 有进度条"实现了基于Ajax的无刷新文件上传功能,结合JavaScript和ASP技术,为用户提供了一个友好的界面和实时的进度反馈。这不仅提高了上传效率,也提升了用户的使用体验。
ASP无组件上传带进度条是一种在ASP(Active Server Pages)环境下实现文件上传并显示上传进度的技术,无需额外的服务器组件。这种技术对于提高用户体验尤其重要,因为它允许用户在上传大文件时了解进度,减少了用户...
基于Uploadify的无刷新上传技术,结合Ajax和Flash技术,为用户提供了一种直观且高效的文件上传方式,尤其在处理多文件上传时,其优势更加明显。 Uploadify是一款非常流行的JavaScript插件,它利用Flash的特性实现了...
在ASP上传文件带进度条的情况下,通常使用JavaScript或者AJAX技术来实现。客户端发送文件到服务器后,服务器返回已接收文件的部分信息,客户端根据这些信息更新进度条。如果使用Flash,Flash与服务器之间可以通过...
总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...
综上所述,实现ASP.NET中的大文件上传并带有进度条功能,涉及到的技术点广泛,包括文件分块、合并、进度条UI、错误处理、安全控制等。理解这些知识点并能够灵活应用,对于开发高效且用户体验良好的文件上传系统至关...
#### 标题解析:“文件上传 带进度条 非常漂亮!” 标题强调了文件上传功能的一个关键特性——带有美观进度条的上传机制。这表明在进行文件传输时,用户能够直观地看到上传的进度,提供了一个更友好、更互动的用户...
这个名为“带进度条的文件上传下载组件(JAVA)”的项目,显然聚焦于提供一个用户友好的交互体验,通过显示进度条来增强用户体验,使用户能够清晰地看到文件上传或下载的进度。下面我们将深入探讨这一组件涉及的主要...