Henryk Plötz: Uploadstatus ausgeben

Beitrag lesen

Moin,

Wenn ich einen Char definiere und das Char gefüllt wird müsste ich doch, wenn ich alle paar sekunden anfrage, den aktuellen Füllstand (strlen) auslesen können.

Naja, ob Sekunden reichen :)

Aber wenn ich das richtig verstanden hab, wird das Char im CGI erst gefüllt, wenn es komplett übertragen ist. Das macht die sache irgendwie kompliziert :o(

Das glaube ich eben nicht, es sei denn es wäre PHP. Mach es so: Schreib dir ein Test-CGI das die Daten entgegennimmt. Das muß doch dann sicher mit einem Puffer arbeiten in den die Daten reingelesen werden. Will sagen du hast dann doch eh eine while-Schleife die nur alle paar Kilobyte weitergeht. Dann machst du einfach am Anfang eine kleine Datei zum Schreiben auf und schreibst dort alle paar Kilobyte (oder auch nur alle 5%, etc) die aktuelle Anzahl der übertragenen Daten und den aktuellen Timestamp je zeilenweise rein. Dann lädst du einmal Daten von einem langsamen Client hoch (oder auch sehr viel Daten über loopback, ich habe meine Experimente mit mehreren MB-großen Dateien gemacht, da dauert das dann auch über Loopback ein paar Sekunden) und schaust am Ende in die Datei ob sich der Timestamp im Verlauf des Uploads ändert. Wenn ja, dann werden die Daten nicht im Server gecached (das ist das wahrscheinlichste) und du kannst mit einer ähnlichen Methode den Uploadstatus anzeigen. Genau das ist in dem Beispielcode von mir weiter oben gemacht.
Wenn nein, hast du ein Problem. Dann müsstest du den Apachen an geeigneten Stellen modifizieren und ein eleganter und einfacher Weg dazu fällt mir nicht ein.
--
Henryk Plötz
Grüße aus Berlin