Getting percentage complete while downloading
Moderator: General Moderators
-
pinkygoyal
- Forum Newbie
- Posts: 4
- Joined: Mon Oct 01, 2007 4:48 am
Getting percentage complete while downloading
I have a problem, while copying a folder from one location to other, i need to show the percentage complete for the copy. i am sending 2 ajax requests , 1 for copy and 2nd for getting %complete. but i am nt able to run the script of percentage complete. this script runs after first script finishes its execution.can anyone help me out.
-
pinkygoyal
- Forum Newbie
- Posts: 4
- Joined: Mon Oct 01, 2007 4:48 am
feyd | Please use
here the other script manualBackUpProcessing.php
this the tpl file
here manualBackUpProcessing.php page copy the folder.
feyd | Please use
Code: Select all
,Code: Select all
and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read: [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
this is getTheBackUpPercentComplete.php scriptCode: Select all
<?php
$destination = $_GET['backUpDirectory'];
$precentComplete = 0;
ini_set("max_execution_time",0);
$source = "E:/documents";
getPercentageComplete($source,$destination);
function getPercentageComplete($source,$destination)
{
$sourceSize = directorySize($source);
$targetSize = directorySize($destination);
$percentComplete = $targetSize/$sourceSize * 100;
echo floor($percentComplete);
}
function directorySize($dir)
{
if ($handle = opendir($dir))
{
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$path=$dir."/".$file;
if (is_dir($path))
{
$filesize+=directorySize($path."/");
}
elseif (is_file($path))
{
$filesize+=filesize($path);
}
}
}
}
return $filesize;
}
?>here the other script manualBackUpProcessing.php
Code: Select all
<?php
$backUpDirectory = $_POST['backUpDirectory'];
ini_set("max_execution_time",0);
$repositoryBaseDirectory = "E:/documents";
full_copy($repositoryBaseDirectory, $backUpDirectory);
function full_copy($source, $target)
{
if ( is_dir( $source ) )
{
@mkdir( $target );
$d = dir( $source );
while ( FALSE !== ( $entry = $d->read() ) )
{
if ( $entry == '.' || $entry == '..' )
{
continue;
}
$Entry = $source . '/' . $entry;
if ( is_dir( $Entry ) )
{
full_copy( $Entry, $target . '/' . $entry );
continue;
}
copy( $Entry, $target . '/' . $entry );
}
$d->close();
}
else
{
copy( $source, $target );
}
}
?>Code: Select all
<html>
<head>
<title>SvnManage - Manual BackUp</title>
{include file=includes/meta.tpl}
<script type="text/javascript" src="{$folderLevel}{$js}yahoo-min.js">
</script>
<script type="text/javascript" src="{$folderLevel}{$js}connection-min.js">
</script>
{literal}
<style>
.colorClass
{
background-color: #1d1;
}
</style>
<script>
function startProgress()
{
setTimeout("getPercentComplete()", 1000);
}
var handleSuccess1 = function(o)
{
if(o.responseText !== undefined)
{
document.getElementById("progressbar").style.width = o.responseText+"%";
document.getElementById("123").innerHTML = "Back up complete : "+ o.responseText +" %"
if (o.responseText < 99)
{
if(document.getElementById("123").innerHTML != "Back up complete : 100%")
{
setTimeout("getPercentComplete()", 100);
}
}
}
};
var handleFailure1 = function(o)
{
};
var callback1 =
{
success:handleSuccess1,
failure:handleFailure1,
argument: { succ:"success", fail:"failure" }
};
function getPercentComplete()
{
var dirName = document.getElementById("backupDirectory").value;
var url = "getTheBackUpPercentComplete.php?backUpDirectory="+dirName;
var request = YAHOO.util.Connect.asyncRequest('GET',url,callback1,null);
var callStatus = YAHOO.util.Connect.isCallInProgress(request);
}
</script>
{/literal}
</head>
<body>
{include file=includes/header.tpl}
{include file=includes/menu.tpl}
<div class="leftMenu"></div>
<div class="content">
<center>
{$errorString}
{$successString}
</center>
<br>
<table border=0 align="center" class="greytablesmall" cellpadding="5" cellspacing="3">
<tr class="heading">
<td colspan="2">Manual Backup</td>
</tr>
<tr>
<td> <span class="normalText">Type : </span></td>
<td > <span class="normalText">Full</span></td>
</tr>
<tr>
<td > <span class="normalText">Back up Directory : </span></td>
<td><span class="normalText"><input type="text" id="backupDirectory" name="backupDirectory"></span></td>
</tr>
<tr>
<td>
<span class="normalText">
<input type="button" name="add" onclick="startBackUp();" value="Start Backup" class="button" id="add" onMouseover="hover('add');" onMouseDown="down('add');" onMouseOut="out('add');">
</span>
</td>
</tr>
</table>
<br>
<table border="0" align="center" class="greytablesmall" cellpadding="0" cellspacing="0">
<tr>
<td height="15px" >
<table border="0" id="progressbar" width="0%">
<tr>
<td></td>
<tr>
</table>
</td>
</tr>
</table>
<span id="123"></span>
{literal}
<script type="text/javascript">
var timerId ;
var handleSuccess = function(o)
{
document.getElementById("progressbar").style.width = "100%";
document.getElementById("123").innerHTML = "Back up complete : 100%"
//clearTimeout(timerId);
};
var handleFailure = function(o)
{
//clearTimeout(timerId);
};
var callback =
{
success:handleSuccess,
failure:handleFailure,
argument: { succ:"success", fail:"failure" }
};
function startBackUp()
{
window.parent.startProgress();
var dirName = document.getElementById("backupDirectory").value;
var url = "manualBackUpProcessing.php";
var postData = "backUpDirectory="+dirName ;
var request = YAHOO.util.Connect.asyncRequest('POST',url,callback,postData);
var callStatus = YAHOO.util.Connect.isCallInProgress(request);
if(callStatus)
{
document.getElementById("progressbar").className = "colorClass";
timerId = setTimeout("getPercentComplete()",1000);
timerId = setInterval("getPercentComplete()", 3000);
}
}
</script>
{/literal}
</div>
{include file=includes/footer.tpl}
</body>
</html>here manualBackUpProcessing.php page copy the folder.
feyd | Please use
Code: Select all
,Code: Select all
and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read: [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]