Ausgabe vor Dateiupload

Da steig ich nicht durch. Hast du vielleicht nen Codeschnippsel für mich?
Weiß im Moment gar nicht wie ich da rangehen soll. Danke dir!!
 
Ich denke ihm fehlt halt ein Kurzüberblick über die Implementierung auf seine Situation angepasst. ;)

@Microhome, ich fürchte, dass Du ein wenig recherchieren und ausprobieren musst. Die vorgeschlagenen Tools vom Dr. sind ganz okay. Dort einfach mal mit den Demo-Skripten rumspielen und die Konfigurationsparameter kennenlernen (Die sind nämlich teilweise sehr flexibel).
 
Naja das Problem ist, dass ich aus dieser kleinen Funktion keine Wissenschaft machen möchte, da es lediglich ein ganz kleiner Teil eines Projekts ist. Daher wäre ich dankebar, wenn mir jemand ne kurze und einfache Lösung schreiben könnte.
Kann ich denn in nem AJAX-Call ne PHP Funktion aufrufen?
 
Okay, mir geht grad auf, dass ich ziemlich Unsinn erzählt habe. Es ist zwar alles möglich, mit Ajax ein wenig PHP in einem I-Frame zu aktualisieren usw., aber Du möchtest den Prozessbalken ja anhand des Uploads aktualisieren, auf den PHP zur Zeit des Uploads auf keinen Fall Zugriff haben kann (technisch unmöglich). Insofern musst Du auf eine reine Javascript-Lösung zurückgreifen. Wenn diese Lösung visuell sinnvoll in Dein Projekt integriert sein soll, muss es mit mehr Gefühl angegangen werden als "Es ist doch nur ein kleiner Teil...".

Diese Tools nehmen Dir sehr viel Arbeit ab, glaube mir. Da ist die Zeit des Lesens und Rumprobierens der Demos sehr sinnvoll investiert. Vom späteren Bugfixing und Browserkompatibilität mal ganz zu schweigen.

Tja.. oder Du verzichtest eben auf den Prozessbalken. Damit bist Du auf der sichersten Seite. Und Leute ohne Javascript-Aktiviert im Browser können Deinen Upload auch nutzen. :)
 
Der Prozessbalken ist kein JavaScript, sondern wird durch die PHP Funktion "$pb = new HTML_Progress2();" initialisiert und kann dann via "$pb->moveStep(3);" auf einen Wert, hier also 30 Prozent, gesetzt werden. Der Statusbalken selbst hat nichts mit der Datei bzw. deren Uploadfortschritt zu tun, die hochgeladen wird. Wie gesagt, der Upload ist nur ein Teil des gesamten Projekts. Darum möchte ich vor dem Upload den Balken via "$pb->moveStep(3);" auf 30 Prozent setzen, damit der User sieht, das etwas passiert.

Wenn die Datei hochgeladne ist, soll der Balken auf 50 Prozent gesetzt werden. Anschließend wird die Datei noch entpackt (Balken auf 70%) und die Fotos in der ZIP Datei werden mit nem Wasserzeichen versehen (Balken 100%).

Das ist alles kein Problem, da ich zwischen den einzelnen Aktionen ein flush() senden kann. Nur eben nicht vor dem Upload und daher frage ich euch, ob es dafür eine ganz einfache Variante gibt. Ich habe eben etwas von einem iframe gelesen, was ich mal ausprobieren werde.
 
Okay. Dann hatte ich es doch falsch verstanden. Somit empfehle ich weiterhin den Lösungsweg:

- Den Prozessbalken in einen Div mit einer eindeutigen ID packen.
- Ein PHP-Skript schreiben, dass diesen Balken anhand von GET-Parametern berechnet und dessen HTML zurückgibt (echo). Dieses Skript verwendet also das PEAR-Paket.
- Im Upload-Formular den Submit-Button durch einen normalen Button ersetzen und mit einem OnClick versehen.
- Das OnClick mit einem Ajax-Aufruf des Skriptes versehen, welches den Prozessbalken auf 50% setzt und ihn im DIV aktualisiert. Beispiel (JQuery: http://www.jquery.com):
$("#prozessbalken").load("prozessbalken.php", {prozent: 50});
- Den Ajax-Aufruf um einen Callback ergänzen, der das Formular abschickt. Beispiel (ungetestet):
$("#prozessbalken").load("prozessbalken.php", {prozent: 50}, function() { $('#deinFormular').submit(); });
- Das Formular selbst submitted Dein Skript so, dass sich der Prozessbalken widerum auf 70% setzt und mit dem Dateihandling weitermacht.
 
Hi Sebastian!
Vielen Dank für die ausführliche Erklärung.
Ich habe das ganze jetzt etwas einfacher gelöst, indem ich dem Formular ein onsubmit Event hinzugefügt habe, welches ganz einfach in einem div den Text "Upload läuft.." ausgibt. Wenn der Upload beendet ist lädt der Balken dann ganz normal über das PHP Script weiter auf 50 Prozent. Ich denke bei maximal 7 MB sollte das so okay sein.

Danke für eure Hilfe und einen guten Rutsch in 2009!
 
Zurück