Hallo,
ich muß vor dem Downloaden per Urllib die Größe der Datei ermitteln.
Mit os.stat(url) und os.path.getsize(url) gehts nicht. Hat einer von euch eine Idee?
Grüße, Seven
Dateigröße via HTTP ?
-
- User
- Beiträge: 408
- Registriert: Freitag 7. Oktober 2005, 14:37
- Wohnort: Berlin
- Kontaktdaten:
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Code: Alles auswählen
u = urllib.urlopen(uri)
info = u.info()
contentType = info.get('Content-Length')
...
Zuletzt geändert von veers am Mittwoch 21. November 2007, 16:39, insgesamt 1-mal geändert.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Argh, es wird wohl schon langsam spät für michLeonidas hat geschrieben:Statt `Content-Type` ist es eher `Content-Length`, was die Größe der Datei enthält.
Definitiv. Aber es ist das Einzige was man vor dem Download hatY0Gi hat geschrieben:Sollte, man darf sich aber nicht darauf verlassen.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
-
- User
- Beiträge: 408
- Registriert: Freitag 7. Oktober 2005, 14:37
- Wohnort: Berlin
- Kontaktdaten:
Perfekt! Ich danke euch.
Seven
Seven
könntest du das etwas ausführen?Y0Gi hat geschrieben:Sollte, man darf sich aber nicht darauf verlassen.
Warum kann man sich nicht darauf verlassen? ("Chunked" mal aussen vor)
Der einzige fall, den ich mir vorstellen könnte, wäre, dass der server die Verbindung vor der gelesenen bytezahl abbricht, weil er eine kürzere datei sendet als angegeben.
Ist sie länger, wäre das doch ungültig (filecontent wär dort, wo die header des nächsten request sein sollten), oder irre ich da?
Wer zwingt den Client die korrekte Zahl dort anzugeben? Insbesondere wenn es eine Beschränkung gibt, die jemand gerne umgehen möchte, könnte er absichtlich einen kleineren, noch erlaubten Wert senden und dann trotzdem mehr Daten hinterher schieben.
Ob nach der Datei die nächste Anfrage kommt, hängt davon ab, ob Client und Server überhaupt ausgehandelt haben, dass über eine Verbindung mehrere Anfragen gestellt werden können. Das muss man ja nicht machen.
Ob nach der Datei die nächste Anfrage kommt, hängt davon ab, ob Client und Server überhaupt ausgehandelt haben, dass über eine Verbindung mehrere Anfragen gestellt werden können. Das muss man ja nicht machen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hier geht es aber um Server, die in der Regel richtige Werte ausgeben oder eben gar keine (alte Server tun das gerne und Streaming-Server sowieso).BlackJack hat geschrieben:Wer zwingt den Client die korrekte Zahl dort anzugeben? Insbesondere wenn es eine Beschränkung gibt, die jemand gerne umgehen möchte, könnte er absichtlich einen kleineren, noch erlaubten Wert senden und dann trotzdem mehr Daten hinterher schieben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich wollte's nur gesagt haben. Es kommt ja auch auf den Verwendungszweck an. Nur wenn der Server einen riesengroßen oder negativen Wert oder Null angibt und dann das Schreiben der empfangenen Daten fehlschlägt, dann sage bitte keiner, er wäre nicht gewarnt worden.
Buffer Overflows fangen auch so an.
Buffer Overflows fangen auch so an.