Seite 1 von 1

Fortschritt - Größe der Datei, die z.Z. hochgeladen wird

Verfasst: Samstag 24. Februar 2007, 21:21
von andihit
Hi,

Wie ist es möglich, die Größe der Datei, die z.Z. hochgeladen wird, auszulesen?

Ich möchte nämlich einen Fortschrittsbalken realisieren - die Datenmenge, die z.Z. hochgeladen wurde, habe ich schon gespeichert.
Allerdings benötige ich noch die ganze Dateigröße, um Prozent und einen Balken anzeigen zu können.

Ich dachte da an den HTTP-Header "Content-Length" - aber dieser liefert das ganze Formular. Ich könnte zwar die unrelevanten Elemente (Submit-Button etc) abziehen, aber ich weiß nicht wie der Browser den Header sendet.

Beim Firefox ist z.B. der Dateiname nur der Dateiname, beim IE ist er mit absolutem Pfad, etc.

Ich verwende mod_python, ohne Framework etc. (sollte man vllt nicht - aber ich möchte nicht nach jedem Code irgendein Script aufrufen, was irgendwas macht damit es funktioniert wie bei django - CherryPy würde ich da schon eher bevorzugen - teste ich evtl. auch mal)

Dass es funktioniert, beweist z.B. http://www.raditha.com/megaupload, http://pdoru.from.ro, http://sean.treadway.info/demo/upload.

MfG

Verfasst: Donnerstag 1. März 2007, 14:48
von Y0Gi
Vielleicht hilft dir paste.progress weiter (s. auch Link 'source' ganz oben).

Verfasst: Donnerstag 1. März 2007, 20:13
von veers
http://swfupload.mammon.se/ könnte dich auch noch interessieren ;)

Verfasst: Freitag 2. März 2007, 08:17
von jens
Ich hatte da mal eine Idee für CGI uploads: http://www.python-forum.de/post-27009.html#27009

Verfasst: Freitag 2. März 2007, 22:37
von andihit
hi,

ich hab jetzt einfach Content-Length genommen (da man ja eigentlich den Seitenaufbau auch zum Laden zählen kann.

Verfasst: Samstag 3. März 2007, 12:16
von Y0Gi
Solange die Angabe korrekt ist, geht das auch.

Verfasst: Samstag 3. März 2007, 19:33
von mitsuhiko
Y0Gi hat geschrieben:Solange die Angabe korrekt ist, geht das auch.
Ist sie.

Verfasst: Sonntag 4. März 2007, 20:11
von Y0Gi
Was garantiert mir das? Ich kann doch selbst Requests mit eigenen Headern senden, wie ich lustig bin. Und ein Programm, was sich zu sehr auf dessen angebliche Korrektheit verlässt, könnte da ziemlich arge Probleme bekommen, wenn da letztlich mehr oder weniger Daten kommen als erwartet. Stimmst du mir da nicht zu?

Verfasst: Sonntag 4. März 2007, 20:15
von Leonidas
Y0Gi hat geschrieben:Was garantiert mir das?
Wenn du dir einen Browser schreibst der mit Absicht falsche Content-Length schickt, dann wird die Anzeige einfach falsch funktionieren. Daher sollte man sie so implementieren, dass nicht so viel kaputt geht, wenn die Werte falsch sind (DivisionByZero etc.).

Verfasst: Sonntag 4. März 2007, 20:32
von mitsuhiko
Y0Gi hat geschrieben:Was garantiert mir das?
WSGI
YoGi hat geschrieben:Ich kann doch selbst Requests mit eigenen Headern senden, wie ich lustig bin. Und ein Programm, was sich zu sehr auf dessen angebliche Korrektheit verlässt, könnte da ziemlich arge Probleme bekommen, wenn da letztlich mehr oder weniger Daten kommen als erwartet. Stimmst du mir da nicht zu?
Ja und? Die Eingabedaten werden nur bis CONTENT_LENGTH gelesen. Wenn du weniger schickst wird mit Nullbytes aufgefüllt.

Verfasst: Sonntag 4. März 2007, 21:08
von Y0Gi
Es geht einfach darum, dass man sich nicht auf leicht manipulierbare Angaben verlassen, sondern seine Anwendung entsprechend gegen Falschangaben absichern sollte. Das hat Leonidas ja nun ergänzt.
blackbird hat geschrieben:
Y0Gi hat geschrieben:Was garantiert mir das?
WSGI
Inwiefern? Wird die Datei nach dem Upload geprüft und der Header neu gesetzt/ggf. korrigiert?

Verfasst: Montag 5. März 2007, 09:56
von jens
Dazu hatten wir vor langer Zeit mal geredet: http://www.python-forum.de/topic-4168.html