Tach!
Die nicht zitierten Fragen kann ich nicht beantworten.
- Prozess-Balken Ein Feature, dass das jQuery-Form-Plugin bietet, ist ein Prozessbalken beim Upload (so_und_soviel_%_hochgeladen …). So einen Prozessbalken sieht man überall, wie ich ihn mit meinem jQuery-Form-Plugin erzeuge, ist schnell herausgefunden. Aber was dahinter steckt ist mir nicht ganz klar.
var ajax = new XMLHttpRequest(); ajax.upload.addEventListener("progress", function(event){ console.log(event.loaded); }, false);
- Das JS-Objekt XMLHttpRequest hat eine Eigenschaft upload.
- Dieser wird ein Eventlistener "progress" hinzugefügt.
- Der Event hat wiederum Eigenschaften wie bspw. loaded
Richtig? Das Ganze hat nichts mit PHP zu tun, wenn ich das richtig verstehe.
Richtig. Das Event progress wird von XMLHttpRequest (Level 2) zur Verfügung gestellt.
Meine Frage zielt darauf ab:
In meinem Fall ist der "Prozess" ja nicht damit abgeschlossen, wenn die Files vollständig auf den Server geladen wurden. Was darauf folgt, ist zuerst die Validierung durch PHP und danach der Upload aus dem upload_tmp_dir auf einen FTP-Server. Von daher stellt sich die Frage, ob ich auch den Teil mit einem Prozessbalken darstellen kann.
Das passiert ja direkt im Anschluss, wenn der Ajax-Request die Datei fertig hochgeladen hat. Der wartet dann auf die Antwort vom Server. Du müsstest aber statt einer Response mehrere Fortschrittsinformationen senden. Und nun musst du mal schauen, was das XMLHttpRequest für Möglichkeiten hat. Um es vorwegzunehmen: nicht viele. Es gibt da das onreadystatechanged-Event und dazu die Werte, die readystate annehmen kann. State loading (=3) sieht noch am vielversprechendsten aus. Die Frage ist nur, wie oft das gefeuert wird, bevor done (=4) kommt. Da musst du mal schauen, wie sich das verhält, wenn du am Server ein paar Mal flush() und sleep() und eine Ausgabe machst.
dedlfix.