- 浏览: 198802 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
fuemma:
有木有学习资料
Ruby -
weijavamen:
谢谢楼主啦!LZ能共享你的类文件吗?我的邮箱:35303318 ...
cos + ajax 文件上传 -
lzysystem:
你的部署方法下载不了,能不能给我发一份,谢谢,我的邮箱是lzy ...
Lucene 建立索引数据库 实现搜索网页 -
ybbkd2:
WebLogic Server 群集由多个 WebLogic ...
weblogic集群 -
lonelydog:
真是太好了,先下载下来再说。
cos + ajax 文件上传
声明: 上传核心代码采用cos 此版本属于自己改装。版权归天星网
近两天项目需要改版上传组件,我仔细研究了一下各上传组件的源码。cos不论从速度还是文件大小方面保持着良好的特性。
经过我改装后的cos可以限制上传文件类型,返回文件流报告(ajax使用),假设读者已经熟悉cos和ajax。可以返回上传文件名称,完成百分比,文件传输速度,需要总时间,剩余时间。
以下是部分代码:
文件1
<%
//创建此目录保存文件
String saveDirectory = "testfile";
//每个文件最大100m,最多3个文件,所以...
int maxPostSize = 3 * 100 * 1024 * 1024;
//命名规则
FileRenamePolicy policy = new DateFileRenamePolicy();
HttpFileUPload fileUpload = new HttpFileUPload();
//编码
fileUpload.setEncoding("UTF-8");
fileUpload.setMaxPostSize(maxPostSize);
fileUpload.setPolicy(policy);
fileUpload.setSaveDirectory(saveDirectory);
//允许上传文件类型
fileUpload.setAllowFiles("jpg,gif,mp3,rmvb,wmv,ghs,reg");
//输出反馈信息
try{
Enumeration files = fileUpload.parseRequest(request);
while (files.hasMoreElements()) {
String name = (String) files.nextElement();
File file = fileUpload.getFile(name);
if (file != null) {
out.println("上传的文件:" + file.getAbsolutePath()+" ");
out.println("<hr>");
}
}
}catch(Exception e){
out.println(e.toString()+"<br>");
out.println("<input type='button' value='重新上传' onClick=\""+"location='index.jsp'\""+">");
}finally{
//清理session
Thread.sleep(1000);
fileUpload.dispose();
}
%>
文件2
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>文件上传</title>
</head>
<body>
<form name="uploadForm" id="uploadForm" method="post" enctype="multipart/form-data" action="upload.jsp">
<P>
<INPUT name="file1" type="file">
</P>
<P align="left">
<INPUT name="file2" type="file">
</P>
<p>
<INPUT name="file3" type="file">
</p>
<p>
</p>
<p id="show">
</p>
<p align="left">
<input type="button" name="Submit" id="upload" value="上传" onClick="go();">
</p>
</form>
</body>
</html>
<script type="text/javascript">
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else {
}
}
}
function go() {
document.uploadForm.submit();
createXMLHttpRequest();
var url = "ProgressBarServlet";
var button = document.getElementById("upload");
button.disabled = true;
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = goCallback;
xmlHttp.send(null);
}
function goCallback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
setTimeout("pollServer()", 2000);
}
}
}
function pollServer() {
createXMLHttpRequest();
var url = "ProgressBarServlet";
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = pollCallback;
xmlHttp.send(null);
}
function pollCallback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var completePercent = xmlHttp.responseXML.getElementsByTagName("completePercent")[0].firstChild.data;
//百分比
var uploadSpeedKB = xmlHttp.responseXML.getElementsByTagName("uploadSpeedKB")[0].firstChild.data;
//传输速度
var remainTimeHMS = xmlHttp.responseXML.getElementsByTagName("remainTimeHMS")[0].firstChild.data;
//剩余时间
var totalTimeHMS = xmlHttp.responseXML.getElementsByTagName("totalTimeHMS")[0].firstChild.data;
//总时间
var fileName = xmlHttp.responseXML.getElementsByTagName("fileName")[0].firstChild.data;
if (completePercent < 100) {
document.getElementById("show").innerHTML =
fileName + "\uff1b" + completePercent
+ "% <br>\u901f\u5ea6\uff1a" + uploadSpeedKB +"KB"
+ "\uff1b<br>\u5269\u4f59\u65f6\u95f4" + remainTimeHMS
+ "\uff1b<br>\u9700\u8981\uff1a" + totalTimeHMS;
setTimeout("pollServer()", 1000);
} else {
document.getElementById("show").innerHTML = "\u5b8c\u6210";
}
}
}
}
</script>
cos的优越性得意于他对IO流的重写。BufferedServletInputStream,LimitedServletInputStream,PartInputStream 经过几次对原始流的优化。详细信息请查看cos源码。
周行制作 jwebee@163.com
工程文件下载
近两天项目需要改版上传组件,我仔细研究了一下各上传组件的源码。cos不论从速度还是文件大小方面保持着良好的特性。
经过我改装后的cos可以限制上传文件类型,返回文件流报告(ajax使用),假设读者已经熟悉cos和ajax。可以返回上传文件名称,完成百分比,文件传输速度,需要总时间,剩余时间。
以下是部分代码:
文件1
<%
//创建此目录保存文件
String saveDirectory = "testfile";
//每个文件最大100m,最多3个文件,所以...
int maxPostSize = 3 * 100 * 1024 * 1024;
//命名规则
FileRenamePolicy policy = new DateFileRenamePolicy();
HttpFileUPload fileUpload = new HttpFileUPload();
//编码
fileUpload.setEncoding("UTF-8");
fileUpload.setMaxPostSize(maxPostSize);
fileUpload.setPolicy(policy);
fileUpload.setSaveDirectory(saveDirectory);
//允许上传文件类型
fileUpload.setAllowFiles("jpg,gif,mp3,rmvb,wmv,ghs,reg");
//输出反馈信息
try{
Enumeration files = fileUpload.parseRequest(request);
while (files.hasMoreElements()) {
String name = (String) files.nextElement();
File file = fileUpload.getFile(name);
if (file != null) {
out.println("上传的文件:" + file.getAbsolutePath()+" ");
out.println("<hr>");
}
}
}catch(Exception e){
out.println(e.toString()+"<br>");
out.println("<input type='button' value='重新上传' onClick=\""+"location='index.jsp'\""+">");
}finally{
//清理session
Thread.sleep(1000);
fileUpload.dispose();
}
%>
文件2
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>文件上传</title>
</head>
<body>
<form name="uploadForm" id="uploadForm" method="post" enctype="multipart/form-data" action="upload.jsp">
<P>
<INPUT name="file1" type="file">
</P>
<P align="left">
<INPUT name="file2" type="file">
</P>
<p>
<INPUT name="file3" type="file">
</p>
<p>
</p>
<p id="show">
</p>
<p align="left">
<input type="button" name="Submit" id="upload" value="上传" onClick="go();">
</p>
</form>
</body>
</html>
<script type="text/javascript">
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else {
}
}
}
function go() {
document.uploadForm.submit();
createXMLHttpRequest();
var url = "ProgressBarServlet";
var button = document.getElementById("upload");
button.disabled = true;
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = goCallback;
xmlHttp.send(null);
}
function goCallback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
setTimeout("pollServer()", 2000);
}
}
}
function pollServer() {
createXMLHttpRequest();
var url = "ProgressBarServlet";
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = pollCallback;
xmlHttp.send(null);
}
function pollCallback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var completePercent = xmlHttp.responseXML.getElementsByTagName("completePercent")[0].firstChild.data;
//百分比
var uploadSpeedKB = xmlHttp.responseXML.getElementsByTagName("uploadSpeedKB")[0].firstChild.data;
//传输速度
var remainTimeHMS = xmlHttp.responseXML.getElementsByTagName("remainTimeHMS")[0].firstChild.data;
//剩余时间
var totalTimeHMS = xmlHttp.responseXML.getElementsByTagName("totalTimeHMS")[0].firstChild.data;
//总时间
var fileName = xmlHttp.responseXML.getElementsByTagName("fileName")[0].firstChild.data;
if (completePercent < 100) {
document.getElementById("show").innerHTML =
fileName + "\uff1b" + completePercent
+ "% <br>\u901f\u5ea6\uff1a" + uploadSpeedKB +"KB"
+ "\uff1b<br>\u5269\u4f59\u65f6\u95f4" + remainTimeHMS
+ "\uff1b<br>\u9700\u8981\uff1a" + totalTimeHMS;
setTimeout("pollServer()", 1000);
} else {
document.getElementById("show").innerHTML = "\u5b8c\u6210";
}
}
}
}
</script>
cos的优越性得意于他对IO流的重写。BufferedServletInputStream,LimitedServletInputStream,PartInputStream 经过几次对原始流的优化。详细信息请查看cos源码。
周行制作 jwebee@163.com
工程文件下载
评论
2 楼
weijavamen
2009-12-03
谢谢楼主啦!LZ能共享你的类文件吗?我的邮箱:353033187@qq.com;谢谢了
1 楼
lonelydog
2009-03-18
真是太好了,先下载下来再说。
发表评论
-
连接池
2006-07-22 17:00 827package com.xinnuo.jdbc; impo ... -
web2.0时代
2006-07-25 10:36 745关于WEB2.0的价值 ... -
Java开源WEB框架
2006-07-26 23:12 908WebWork WebWork是由OpenS ... -
Java开源J2EE框架
2006-08-05 21:04 824Spring Spring是一个 ... -
2006年度技术和框架
2006-08-09 21:30 741年度技术:AJAX (Mozilla Developer Ce ... -
软件架构
2006-11-08 13:32 733软件架构 ... -
cos + ajax 文件上传
2006-11-15 09:59 752声明: 上传核心代码采用cos 此版本属于自己改装。版权归天 ... -
spring 集成的技术框架
2006-11-22 10:38 827DAO(数据访问对象) 1 Hibernate ... -
J2EE
2006-11-23 09:36 682J2EE(Java 2 Enterpris ... -
设计模式
2006-11-24 17:36 606设计模式( ... -
AOP 面向切面编程
2006-11-28 09:17 1479AOP(Aspect Oroented ... -
Ruby
2006-12-06 18:00 12172006年11月,ruby语言的使用排名较2005年 ... -
DWR 中文文档
2006-12-13 11:16 627DWR是一个Java开源库,帮助你实现Ajax网站。 它可 ... -
SQL(STructured Query Language)
2006-12-30 10:19 732SQL(STructured Query ... -
面向对象数据库
2007-01-01 14:57 855面向对象数据库系统(Object Oriented Data ... -
JCP-JSR168: Portal
2007-01-31 15:49 687这里所说的Portal是指JCP-JSR168规范所描述的 ... -
web service
2007-02-08 17:32 564Web Service一词似乎一夜 ... -
Apache Struts 2 GA
2007-02-27 11:55 581Apache Struts 2 GA 版本发布了.这是Apac ... -
Tomcat性能调整
2007-04-06 11:26 555一. 引言 性能测试与分析是软件开发过程中 ... -
WebLogic 9 新特性
2007-04-09 15:21 79310 :增强的 Web 服务和 ...
相关推荐
cos+ajax文件上传进度条
cos-js-sdk-v5腾讯云 COS JS SDK()Get started一、前期准备首先,JS SDK 需要浏览器支持基本的 HTML5 特性,以便支持 ajax 上传文件和计算文件 md5 值。到 创建存储桶,得到 Bucket(存储桶名称) 和到 获取您的...
SpringMVC上传图片文件到 腾讯云,前端使用Ajax,亲测可用。
把 demo/lib/cos-wx-sdk-v5.js 复制到自己小程序项目代码里,在需要上传文件的地方贴以下代码 var Bucket = 'test-1250000000'; var Region = 'ap-guangzhou'; // 初始化实例 var cos = new COS({
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
数据库:Mysql5.7、COS 服务器:腾讯CVM(CentOS7.2) Web框架:Servlet、Ajax 前端技术:echarts、SVG、ecStat、jQuery、bootstrap - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...