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

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
andihit
User
Beiträge: 5
Registriert: Freitag 8. September 2006, 21:47

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
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Vielleicht hilft dir paste.progress weiter (s. auch Link 'source' ganz oben).
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

http://swfupload.mammon.se/ könnte dich auch noch interessieren ;)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich hatte da mal eine Idee für CGI uploads: http://www.python-forum.de/post-27009.html#27009

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
andihit
User
Beiträge: 5
Registriert: Freitag 8. September 2006, 21:47

hi,

ich hab jetzt einfach Content-Length genommen (da man ja eigentlich den Seitenaufbau auch zum Laden zählen kann.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Solange die Angabe korrekt ist, geht das auch.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Y0Gi hat geschrieben:Solange die Angabe korrekt ist, geht das auch.
Ist sie.
TUFKAB – the user formerly known as blackbird
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

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.
TUFKAB – the user formerly known as blackbird
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dazu hatten wir vor langer Zeit mal geredet: http://www.python-forum.de/topic-4168.html

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten