进度条
来源:互联网 发布:淘宝店铺异常pc端处理 编辑:程序博客网 时间:2024/05/16 09:13
二种方法做到:
1.from 的提交listen
2.线程.
在页面上的提交按扭上,加一个JS.(目的是事件监听打开)
后台提交写一个线程,时时监听文件上传的进度.并把进度放在SESSION中.让JS时时去读取.
方法1:
upload.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Upload Image</title>
<meta http-equiv="Cache-Control" content="no-store"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script src="js/jquery-1.2.3.js" type="text/javascript" charset="utf-8"></script>
</head>
<script>
jQuery(document).ready(function() {
var cancel = $("#cancelButton");
var upload = $("#uploadButton");
var progressBar = $("#progressBar");
var progressBarContainer = $("#contentLoading");
//attach progressBar style
progressBarContainer.css({width:"300px",height:"10px",lineHeight:"10px",background:"url(img/progress/bgbar.gif) left top",display:"none",marginTop:"5px"});
progressBar.css({width:"0px",height:"10px",lineHeight:"10px",background:"url(img/progress/forebar.png) left top"});
//progressBar.css({width:"10px",height:"10px",lineHeight:"10px"});;
progressBar.html(" ");
cancel.click(function(){
Editor.dialogs.ImageSource.hide();
return false;
});
upload.click(function(){
progressBarContainer.css("display","block");
progressBar.css("width","0px");
var url = "./demos/uploadInfo.jsp?type=1";
var testIndex = 0;
uploadingFile = true;
progressBarHandler = window.setInterval(function(){
// Util.log(url + "&random=" + (new Date().getTime()));
// progressBar.css("width",testIndex*3);
// testIndex += 1;
// if (testIndex >100 )testIndex = 0;
$.ajax({url:url + "&random=" + (new Date().getTime()),
type: 'GET',
dataType: 'html',
timeout: 10000,
error: function(){
},
success: function(html){
testIndex+=1;
if (testIndex>100){
// progressBarHandler = window.clearInterval(progressBarHandler);
}
var percentage = parseInt(Number(html));
//var percentage = parseInt(Number(html)*100);
//Util.log("~~ current progress"+percentage+ " html "+html+ " bar width "+progressBar.css("width"));
if (percentage == -1){
if (uploadingFile){
progressBar.css("width",100*3);
progressBarHandler = window.clearInterval(progressBarHandler);
window.setTimeout(function(){
progressBar.css("width",100*3);
Editor.dialogs.ImageSource.hide();},1000); uploadingFile = false;
}else{
progressBar.css("width",100*3);
progressBarHandler = window.clearInterval(progressBarHandler);
}
return;
}else{
progressBar.css("width",percentage*3);
}
//document.getElementById("progressBar").innerHTML =' percentage;
//$("#progressBar").html(percentage);
}
});//end of ajax
},50);
});
})
</script>
<body>
<div class="ui-dialog-titlebar"><span class="ui-dialog-title">Upload Image</span><div class="ui-dialog-titlebar-close"/></div>
<fieldset style="margin:5px;border:1px solid #CCCCCC;padding:0;font-size:11px;">
<form wicket:id="inviteFriendForm" id="inviteFriendForm" action="" method="post" enctype="multipart/form-data">
<br>
<div style="height:60px;">
<input type="file" id="fileInput" wicket:id="fileInput" size="30"/>
<div id="contentLoading"><div id="progressBar"></div> </div>
<br>
<br>
<input id="uploadButton" type="submit" value="Upload!"/>
<br>
</div>
<br>
<!-- input type="hidden" wicket:id="finalPath" value="" id="finalPath"/-->
</form>
</fieldset>
</body>
</html>
uploadinfo.jsp 输出进程的HMTL
<%@ page contentType="text/html; charset=utf-8" language="java" import="org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadInfo" errorPage="" %>
<%
UploadInfo progress = (UploadInfo) session.getAttribute("org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadWebRequest");
if (progress == null){
out.print("-1");
}else{
out.print(progress.getPercentageComplete());
}
%>
线程的方法:
new Thread() {
@Override
public void run() {
try {
while (progress != -1){
Thread.sleep(200);
HTTPsession.setAttribute("imageProgress", Double.toString(progress*1.0/progressValue));
}
HTTPsession.setAttribute("imageProgress", Integer.toString(1));
} catch (InterruptedException e) { }
// The bar is stopped automatically, if progress is done
}
}.start();
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 进度条
- 设置flash的背景为透明
- Hash 的解释说明
- VB错误代码集
- 《承诺》
- 向5.12汶川地震中殒难的同胞致哀
- 进度条
- 连线杂志10大黑白照片
- 羊皮卷
- Linux下的飞鸽传书源码(ipmsg、聊天、文件传输)
- 基于java正则表达式的网页解析
- 网页中调用IE命令
- javascript 常用小知识
- 写给想当程序员的朋友—一个还不太老的普通程序员的体会
- 遭遇 Trojan-PSW.Win32.QQPass,Trojan.PSW.Win32.GameOL等1