Uploadstatus mittels Ajax (Therie)
Fred K.
- programmiertechnik
0 Rouven0 _roro0 Fred K.
0 Sven Rautenberg0 at
Hi
Folgende Überlegung:
Wenn ich ein Formular aufsetze, mit dem man eine Datei hochladen kann, könnte ich dann mittels Ajax den Upload-Status herausfinden?
Ich denke mir das so:
Man schreibt ein Formular (Mit einem type=file und einem type=submit). Nach dem Klick auf Submit läd das Script die Datei mittels POST hoch (sei es nun direkt über HTTP oder indirekt über Ajax-HTTP).
Danach überprüft ein JS-loop jede 5 Sekunden mittels einer Ajax-Technik (mit einem serverseitigen PHP-Scripts) wie groß mittlerweile die TEMP-Datei für das File ist und gibt es als Callback zurück (um es als Prozentzahl oder Ladebalken zu visualisieren)
Das Problem dass ich sehe wäre ggf., dass die Callback-Funktion ggf. den Upload der Datei behindern/abbrechen könnte.
Nun aber meine Frage:
Ist das alles großer Humbug den ich mir da erträumt habe oder könnte so was gehen? Ich will heute Abend nicht mich weinend ins Bett fallen lassen und den ganzen Tag dran geschrieben haben =)
MFG
Hello,
Ist das alles großer Humbug den ich mir da erträumt habe oder könnte so was gehen? Ich will heute Abend nicht mich weinend ins Bett fallen lassen und den ganzen Tag dran geschrieben haben =)
ne, so großer Humbug dürfte das IMHO nicht sein. Ich hatte mal eine ASP Komponente auf einem Server laufen, die genau sowas (nur damals noch ohne AJAX) bereit gestellt hat. Die Frage ist nur, ob dich ein Zugriff auf die "temp"-Datei weiter bringt. Hast du mal geschaut, ob die wirklich während des Upload wächst, oder ob der Server die Daten irgendwo im Speicher hält, bevor er sie wegschreibt?
MfG
Rouven
Mhhh... da muss was dran sein, dass das nicht so einfach gehen soll. Die ganzen Scripts die ich dazu bisher fand setzten immer auf ein Perl Framework. Ich frage mich ob man es nicht auch nur mit PHP+Ajax realisieren kann...
MFG
Hallo Fred,
Mhhh... da muss was dran sein, dass das nicht so einfach gehen soll. Die ganzen Scripts die ich dazu bisher fand setzten immer auf ein Perl Framework.
Kannst Du hier bitte die Quellen deiner Fundstücke auflisten? Ich habe einen solchen Fortschrittsbalken auch schon eingesetzt, musste deswegen leider auf das CGI-Modul verzichten, weil dies erstmal das STDIN an sich reißt, und die Daten in ein anonymes Filehandle schreibt, auf welches man außerhalb des CGI-Moduls keinen Zugriff hat.
Herzliche Grüße aus Weinsberg
Helmut Weber
Also meine (OpenSource)Favoriten bisher sind:
Cake
Pro: Multiple-File Upload, sehr dynamisch
Contra: Schlechte Dokumentation
http://thinkingphp.org/demos/cake-timer/
Rails Upload Progress
Pro: sehr schick, erweiterte infos während des uploads
Contra: Single-File Upload, Framework von 2MB als workaround
http://sean.treadway.info/demo/upload/
tesUpload
Pro: sehr schick, Multiple-File Upload
Contra: Schlechte Dokumentation, keine Demo
http://tomas.epineer.se/tesupload/
LightLoader
Pro: Multiple-File Upload
Contra: Nicht benutzerfreundlich genug
http://www.seemysites.net/projFolder/uploader/
A Progessbar Tuto
Pro: Verständlich umzusetzen
Contra: JSP (für mich ein Contra =) )
http://www.learntechnology.net/content/ajax/ajax_upload.jsp
MFG
Hallo Fred,
Vielen Dank für deine ausführliche Recherche!
Cake
Pro: Multiple-File Upload, sehr dynamisch
Contra: Schlechte Dokumentation
http://thinkingphp.org/demos/cake-timer/
Genau das richtige für mich ;-)
Der Uber-Uploader ist in Perl geschrieben, und verwendet das CGI-Modul. Das Problem mit der anonymen Temp-Datei wird dadurch umgangen, dass das Verzeichnis für die temporären Dateien vorgegeben wird.
Rails Upload Progress
Pro: sehr schick, erweiterte infos während des uploads
Contra: Single-File Upload, Framework von 2MB als workaround
http://sean.treadway.info/demo/upload/
Wirklich traumhaft umgesetzt, aber ich scheue mich auch nur wegen einer "kleinen" Zusatzfunktion einen wahnsinnigen Wulst von "Requirements" zu erfüllen.
Herzliche Grüße aus Weinsberg
Helmut Weber
Cake
Genau das richtige für mich ;-)
Sehe ich genauso. Ich denke es wird auf Cake hinauslaufen. Allerdings schlage ich mich noch etwas mit der implementierung herum. Wenn du eine laufende Demo auf deinem Rechner hast würd eich mich freuen wenn du sie mir als zip geben könntest. Ich steige durch die Dokumentation einfach nicht durch.
Rails Upload Progress
Wirklich traumhaft umgesetzt, aber ich scheue mich auch nur wegen einer "kleinen" Zusatzfunktion einen wahnsinnigen Wulst von "Requirements" zu erfüllen.
Auch hier stimme ich dir zu. Schön aber viel zu gross für so eine kleine Aufgabe.
MFG
Hallo Fred,
Sehe ich genauso. Ich denke es wird auf Cake hinauslaufen. Allerdings schlage ich mich noch etwas mit der implementierung herum. Wenn du eine laufende Demo auf deinem Rechner hast würd eich mich freuen wenn du sie mir als zip geben könntest. Ich steige durch die Dokumentation einfach nicht durch.
Etwas fertiges zum einfachen Zeigen habe ich leider nicht. Die Website von Cake ist wirklich nicht aufschlussreich. Aber lade Dir mal den Uber Upload herunter und schaue Dir den Quelltext an.
Wenn Du noch weitere Fragen hast, können wir Dir im Forum bestimmt helfen.
Herzliche Grüße aus Weinsberg
Helmut Weber
ne, so großer Humbug dürfte das IMHO nicht sein. Ich hatte mal eine ASP Komponente auf einem Server laufen, die genau sowas (nur damals noch ohne AJAX) bereit gestellt hat. Die Frage ist nur, ob dich ein Zugriff auf die "temp"-Datei weiter bringt. Hast du mal geschaut, ob die wirklich während des Upload wächst, oder ob der Server die Daten irgendwo im Speicher hält, bevor er sie wegschreibt?
Das Problem dürfte eher sein, rauszufinden wo dieses Datei ist und wie sie heißt. Da du ja ständig Requests machen musst um die Datei zu prüfen, weiß dass Skript nicht wie das System die einmal ausgewählte Datei zum hochladen benannt hat, d.h. es muss anhand einer Session ermittelbar sein, nach welcher Datei geschaut werden muss, das das geht hab ich auch schon gesehen, aber selber gemacht noch nicht.
Struppi.
Hi
Folgende Überlegung:
Wenn ich ein Formular aufsetze, mit dem man eine Datei hochladen kann, könnte ich dann mittels Ajax den Upload-Status herausfinden?
Hab sowas mal gefunden, Suchworte: Upload Ajax Progressbar...
Mit Demo, sowas geht also.
roro
Stimmt natürlich. Das hätte ich vorher auch mal machen können.
Ich war so in Gedanken dass ich den Wald vor lauter Bäumen nicht sah.
Dank dir.
MFG
Moin!
Nun aber meine Frage:
Ist das alles großer Humbug den ich mir da erträumt habe oder könnte so was gehen? Ich will heute Abend nicht mich weinend ins Bett fallen lassen und den ganzen Tag dran geschrieben haben =)
Als sportliche Herausforderung kann man sich mit sowas natürlich beschäftigen.
Es ist allerdings meine feste Überzeugung, dass die Generierung eines Upload-Fortschrittsbalkens die alleinige Aufgabe des Browsers sein sollte. Und so allmählich scheint das auch in das Bewußtsein der Browserentwickler vorzudringen, dass es blöd ist, wenn jemand eine Datei hochlädt, und dann mitunter minutenlang optisch nichts passiert.
- Sven Rautenberg
Hallo.
Und so allmählich scheint das auch in das Bewußtsein der Browserentwickler vorzudringen, dass es blöd ist, wenn jemand eine Datei hochlädt, und dann mitunter minutenlang optisch nichts passiert.
Das wäre eine erfreuliche Entwicklung, aber wo siehst du die?
MfG, at