Thread Fortschrittsanzeige in HTML-File (30 answers)
Opened by protag at 2010-01-13 14:26

Gast rolf Schaufelberger
 2010-01-17 15:50
#130662 #130662
Das Problem ist, dass ein das CGi Skript erst abläuft, wenn der Upload vollständig hochgeladen ist (wenn ich mich recht erinnere ist es der Aufruf von param() der wartet, bis alle Daten da sind).
Allerdings gibt es hooks, d.h, ich kann eine sub-ref angeben, welche während eines Uploads regelmäßig aufgerufen wird ( perldoc CGI, dann nach hook suchen).
Dieses Script kann nun die hochgeladene Datenmenge bestimmen und muss diese dann irgendwo zwischenspeichern (Datei, Shared Memory), damit ein zweiter Request diese Daten lesen kann. Dieser zweite Request wird in der Regel per Javascript ausgeführt und zeichnet dann den Fortschrittsbalken. Hier gibt es wieder zwei Probleme :
1. Wie verhält sich das, wenn in einem Upload mehrere Dateien hochgeladen werden ? (darauf habe ich keine Antwort :-( )
2. Wie ordne ich diesen zweiten Request, meinem gespeicherten Ergebnis zu ? Es können ja theoretisch mehrere Uplaods gleichzeitig stattfinden. Dazu müsste eine Kennung sowohl beim Upoload, als auch beim Request zur Abfrage mitgesendet werden. Das Problem hierbei ist wieder, dass der Hook keinen Zugriff auf die übrigen Parameter des uploads hat., die Kennung also nicht bestimmen kann...
Was kann man also tun ?
Ganz ehrlich, für CGI Skripte habe ich keine brauchbare Lösung gefunden. Wenn du mod_perl verwendest, dann nimm Apache2::UploadProgress, damit geht das wunderbar.
Es gibt wohl auch 'fertige' Lösungen für CGI (einfach mal danach googeln) , aber ich habe es nicht hinbekommen, damit eine für mich brauchbare Lösung zu erstellen.

Rolf

View full thread Fortschrittsanzeige in HTML-File