zoukankan      html  css  js  c++  java
  • 使用 jQuery progressBar 做文件上传的进度条指示

    简介:这是使用 jQuery progressBar 做文件上传的进度条指示的详细页面,介绍了和php,javascript, PHP 使用 jQuery progressBar 做文件上传的进度条指示有关的知识、技巧、经验,和一些php源码等。

    class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=350532' scrolling='no'>
    var progress_key = '4cd0f29463edb';
     
    // this sets up the progress bar
    $(document).ready(function() {
        $("#uploadprogressbar").progressBar();
    });
     
    // fades in the progress bar and starts polling the upload progress after 1.5seconds
    function beginUpload() {
        // uses ajax to poll the uploadprogress.php page with the id
        // deserializes the json string, and computes the percentage (integer)
        // update the jQuery progress bar
        // sets a timer for the next poll in 750ms
        $("#uploadprogressbar").fadeIn();
     
        var i = setInterval(function() { 
            $.getJSON("demo.php?id=" + progress_key, function(data) {
                if (data == null) {
                    clearInterval(i);
                    location.reload(true);
                    return;
                }
     
                var percentage = Math.floor(100 * parseInt(data.bytes_uploaded) / parseInt(data.bytes_total));
                $("#uploadprogressbar").progressBar(percentage);
            });
        }, 1500);
    }
    <?php
    	header("Cache-Control: no-cache, must-revalidate");
    	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    
    	if (@$_GET['id']) {
    		echo json_encode(uploadprogress_get_info($_REQUEST['id']));
    		exit();
    	}
    
    	if (@$_POST['UPLOAD_IDENTIFIER'])
    		exit();
    	
    	$uuid = uniqid();
    ?>
    <!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" xml:lang="en" lang="en">
    	<head>
    		<title>Jquery WITS Form</title>
    	    <link rel="stylesheet" type="text/css" href="http://t.wits.sg/misc/css/reset.css"/>
    	    <link rel="stylesheet" type="text/css" href="http://t.wits.sg/misc/css/base.css"/>
    	    <link rel="stylesheet" type="text/css" href="http://t.wits.sg/misc/css/template.css"/>
    	    <link rel="stylesheet" type="text/css" href="http://t.wits.sg/misc/css/form.css"/>
    		<script type="text/javascript">
    			var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    			document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
    			</script>
    			<script type="text/javascript">
    			try {
    			var pageTracker = _gat._getTracker("UA-1120774-3");
    			pageTracker._trackPageview();
    			} catch(err) {}
    		</script>
    		<script type="text/javascript" src="http://t.wits.sg/misc/js/jQuery/jquery.js"></script>
    		<script type="text/javascript" src="http://t.wits.sg/misc/js/jQuery/chili/jquery.chili-2.2.js"></script>
    		<script type="text/javascript"> 
    			ChiliBook.recipeFolder = "../js/jQuery/chili/";  
    		</script>
    		<script type="text/javascript" src="js/jquery.progressbar.min.js"></script>
    		<script type="text/javascript">
    			var progress_key = '<?= $uuid ?>';
    
    			$(document).ready(function() {
    				$("#pb1").progressBar();
    				$("#pb2").progressBar({ barImage: 'images/progressbg_yellow.gif'} );
    				$("#pb3").progressBar({ barImage: 'images/progressbg_orange.gif', showText: false} );
    				$("#pb4").progressBar(65, { showText: false, barImage: 'images/progressbg_red.gif'} );
    				$(".pb5").progressBar({ max: 2000, textFormat: 'fraction', callback: function(data) { if (data.running_value == data.value) { alert("Callback example: Target reached!"); } }} );
    				$("#uploadprogressbar").progressBar();
    			});
    
    			function beginUpload() {
    				$("#uploadprogressbar").fadeIn();
    
    				var i = setInterval(function() { 
    					$.getJSON("demo.php?id=" + progress_key, function(data) {
    						if (data == null) {
    							clearInterval(i);
    							location.reload(true);
    							return;
    						}
    
    						var percentage = Math.floor(100 * parseInt(data.bytes_uploaded) / parseInt(data.bytes_total));
    						$("#uploadprogressbar").progressBar(percentage);
    					});
    				}, 1500);
    
    				return true;
    			}
    		</script>
    		<style type="text/css">
    			table tr { vertical-align: top; }
    			table td { padding: 3px; }
    			div.contentblock { padding-bottom: 25px; }	
    			#uploadprogressbar { display: none; }
    		</style>
    	</head>
    	<body>
    		<div id="container">
    			<div style="float: right; text-align: right;  300px;">download me at <a href="http://t.wits.sg">http://t.wits.sg</a></div>
    			<div class="contentblock">
    				<h2>Progress Bars &amp; Controls</h2>
    				<table>
    					<tr><td>Default Multicolored Bar</td><td><span class="progressBar" id="pb1">75%</span></td></tr>
    					<tr><td>Yellow Bar</td><td><span class="progressBar" id="pb2">35%</span></td></tr>
    					<tr><td>Orange Bar (No Text)</td><td><span class="progressBar" id="pb3">55%</span></td></tr>
    					<tr><td>Red Bar (No Text)</td><td><span class="progressBar" id="pb4">85%</span></td></tr>
    					<tr><td>Default Multicolored Bar with max value of 2000</td><td><span class="progressBar pb5">32</span></td></tr>
    				</table>
    				<strong>Some controls: </strong>
    				<a href="#" onclick="$('#pb1').progressBar(20);">20</a> |
    				<a href="#" onclick="$('#pb1').progressBar(40);">40</a> |
    				<a href="#" onclick="$('#pb1').progressBar(60);">60</a> |
    				<a href="#" onclick="$('#pb1').progressBar(80);">80</a> |
    				<a href="#" onclick="$('#pb1').progressBar(100);">100</a>
    			</div>
    
    			<div class="contentblock">
    				<h2>Usage: </h2>
    <pre class="ln-"><code class="js">
    $(document).ready(function() {
    	$("#pb1").progressBar();
    	$("#pb2").progressBar({ barImage: 'images/progressbg_yellow.gif'} );
    	$("#pb3").progressBar({ barImage: 'images/progressbg_orange.gif', showText: false} );
    	$("#pb4").progressBar(65, { showText: false, barImage: 'images/progressbg_red.gif'} );
    	$(".pb5").progressBar({ max: 2000, textFormat: 'fraction', callback: function(data) { if (data.running_value == data.value) { alert("Callback example: Target reached!"); } }} );
    	$("#uploadprogressbar").progressBar();
    });
    </code></pre>
    			
    			</div>
    			<div class="contentblock">
    				<h2>Progress Bars Form Example</h2>
    				<a href="demo.txt">Download the PHP Source here</a>
    				<div class="edit_panel">
    					<form action="demo.php" target="progressFrame" method="post" id="uploadform" enctype="multipart/form-data" onsubmit="beginUpload();">
    						<input type="hidden" name="UPLOAD_IDENTIFIER" id="progress_key" value="<?= $uuid ?>" />
    						<table class="form">
    							<tr><td class="labelcol"><label for="firstname">First Name</label><em>*</em></td><td class="inpulcol"><input type="text" name="firstname" id="firstname" class="text" /></td></tr>
    							<tr><td class="labelcol"><label for="lastname">First Name</label><em>*</em></td><td class="inpulcol"><input type="text" name="lastname" id="lastname" class="text" /></td></tr>
    							<tr><td class="labelcol"><label for="password">First Name</label><em>*</em></td><td class="inpulcol"><input type="password" name="password" id="password" class="text" /></td></tr>
    							<tr><td class="labelcol"><label for="ulfile1">File 1</label></td>
    							    <td><input type="file" name="ulfile1" id="ulfile1" /></td>
    							</tr>
    							<tr><td class="labelcol"><label for="ulfile2">File 2</label></td>
    							    <td><input type="file" name="ulfile2" id="ulfile2" /></td>
    							</tr>
    							<tr><td class="labelcol"><label for="ulfile3">File 3</label></td>
    							    <td><input type="file" name="ulfile3" id="ulfile3" /></td>
    							</tr>
    							<tr><td class="labelcol"></td>
    								<td class="inputcol"><input type="submit" value="Submit" />
    								<br />
    								<span class="progressbar" id="uploadprogressbar">0%</span>	
    							</td></tr>
    						</table>
    					</form>
    				</div>
    			</div>
    			
    			<div class="contentblock">
    				<h2>Upload Form Javascript: </h2>
    <pre class="ln-"><code class="js">
    var progress_key = '<?= $uuid ?>';
    
    // this sets up the progress bar
    $(document).ready(function() {
    	$("#uploadprogressbar").progressBar();
    });
    
    // fades in the progress bar and starts polling the upload progress after 1.5seconds
    function beginUpload() {
    	// uses ajax to poll the uploadprogress.php page with the id
    	// deserializes the json string, and computes the percentage (integer)
    	// update the jQuery progress bar
    	// sets a timer for the next poll in 750ms
    	$("#uploadprogressbar").fadeIn();
    
    	var i = setInterval(function() { 
    		$.getJSON("demo.php?id=" + progress_key, function(data) {
    			if (data == null) {
    				clearInterval(i);
    				location.reload(true);
    				return;
    			}
    
    			var percentage = Math.floor(100 * parseInt(data.bytes_uploaded) / parseInt(data.bytes_total));
    			$("#uploadprogressbar").progressBar(percentage);
    		});
    	}, 1500);
    }
    </code></pre>
    			</div>
    		</div>
    		<!-- Ok, you so need this iframe for Safari and Chrome to work, the webkit engine doesnt allow ajax calls to be made after a form begins submission -->
    		<iframe style="display: none;" name="progressFrame"></iframe>
    	</body>
    </html>

    爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具

    http://biancheng.dnbcw.info/php/350532.html pageNo:3
  • 相关阅读:
    深入理解DOM事件类型系列第四篇——剪贴板事件
    深入理解DOM事件机制系列第四篇——事件模拟
    利用select实现年月日三级联动的日期选择效果
    深入理解表单脚本系列第四篇——选择框脚本
    存储过程返回布尔值以及C#相关处理
    Type 'Insus.NET.PictureObject' in Assembly 'App_Code, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
    打开Windows10网络发现或是文件打印共享
    反射(Reflection)的SetValue遇上DBNULL转换为string
    MS SQL中使用UPDATE ... INNER JOIN ...
    Visual Studio 2015正式企业(Enterprise)版
  • 原文地址:https://www.cnblogs.com/ooooo/p/2238724.html
Copyright © 2011-2022 走看看