Hallo,
hab da mal folgendes Problem mit meiner Progressbar mit PECL Uploadprogress.
Das Script läuft soweit echt gut.
Da ich aber auf dem Land wohne, habe ich nur eine Internetverbindung mit ca. 360 kb.
Somit dauern die Uploads von größeren Daten extrem lange.
Habe es gestern und heute schon mal gestet und festgestellt, das die Anzeige
immer nach einer Weile einfach stehen bleibt. Der Upload läuft aber weiter.
Hier der Code aus der Formularseite:
PHP-Code:
<!--ab hier alle daten für den ladebalken mit pecl-->
<script type="text/javascript">
var xmlHttp = null;
var work = 0;
var stamp;
if (window.ActiveXObject) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
}
}
} else if (window.XMLHttpRequest) {
try {
xmlHttp = new XMLHttpRequest();
} catch (e) {
}
}
var uploadID = '<?php echo $id; ?>';
function $(obj) {
return document.getElementById(obj);
}
function updateProgress() {
stamp = new Date() * getRandom();
if (work == 0) {
work = 1;
xmlHttp.open('GET', './ajax.php?id=' + uploadID + "&" + stamp, true);
xmlHttp.onreadystatechange = reloadProgress;
xmlHttp.send(null);
} else setTimeout("updateProgress()", 100);
}
function reloadProgress() {
if (xmlHttp.readyState==4) {
work = 0;
text = xmlHttp.responseText;
var upload = eval("("+text+")");
if (upload["percent"] < 100) {
$('progress').style.display="block";
$('progressbar').style.width = upload["percent"] + "%";
$('uploadFileName').innerHTML = upload["file"];
$('uploadedBytes').innerHTML = upload["uploaded"];
$('uploadTotalBytes').innerHTML = upload["total"];
$('uploadUnit').innerHTML = upload["unit"];
$('uploadPercent').innerHTML = upload["percent"];
$('uploadSpeed').innerHTML = upload["speed"];
$('uploadTimeLeft').innerHTML = upload["left"];
$('uploadzeit').innerHTML = upload["zeit"];
setTimeout("updateProgress()", 1000);
} else $('progress').style.display="none";
}
}
function getRandom() {
return parseInt(Math.random()*1000000)+1;
}
</script>