Gerne
var b = new bar(254,100,0);
$(document).ready(function() {
$("#progressbar").append(b.barHtmlObject);
});
var xhr = new XMLHttpRequest();
function resetform() {
$("#success").fadeOut(500,function() {
$("#thefile").fadeIn(500);
});
}
function onsuccessHandler(evt) {
b.set(100);
$("#progressbar").fadeOut(500,function() {
b.set(0);
$("#success").fadeIn(500);
});
}
function resulttxt(r) {
if(r.originalTarget.readyState == 4 && r.originalTarget.status == 200) {
$("#success").html(r.originalTarget.responseText);
}
}
function onprogressHandler(evt) {
var percent = Math.floor(evt.loaded / evt.total * 100);
b.set(percent);
}
function start_upload(fileInput) {
$(fileInput).fadeOut(500,function() {
$("#progressbar").fadeIn(500,function() {
var file = fileInput.files[0];
var ext = file.name.substring(file.name.lastIndexOf(".") + 1).toLowerCase();
var allowed = false;
for(var i = 0;i < allowedfiletypes.length;i++) {
if(allowedfiletypes[i] == ext) {
allowed = true;
break;
}
}
if(!allowed) {
$("#progressbar").fadeOut(500,function() {
b.set(0);
$("#success").html("Die Datei wurde nicht gespeichert. Die Dateiendung ist nicht erlaubt.<br><input type=\"button\" value=\"Andere Datei auswählen\" onClick=\"resetform()\"></input>");
$("#success").fadeIn(500);
});
}else{
xhr.upload.addEventListener('progress', onprogressHandler, false);
xhr.upload.addEventListener('load', onsuccessHandler, false);
xhr.onreadystatechange = resulttxt;
xhr.overrideMimeType("text/plain; charset=ISO-8859-1");
xhr.open('POST', 'ulprogress.php?fn='+file.name, true);
xhr.send(file);
}
});
});
}
So wurde es umgesetzt. Hatte jetzt nicht so lust, das im einzelnenen auszusortieren. :) Da steckt noch ne eigene Javascript-Klasse drin, welche die ProgressBar anzeigt und leicht steuern lässt.
Ich finds ganz gut. Wenn aber noch was "optimiert" werden könnte, könnt ihr mir das natürlich gern sagen.