Mailinglisten-Archive |
Hallo, folgendes Szenario: mehrere Dateien sollen in einer ZIP-Datei per Download angeboten werden. Die Größe und die Anzahl der Dateien ist pro Download unterschiedlich. Die ZIP-Datei wird direkt mittels passthru() und fwrite() in den php://output Kanal geschrieben. Das Problem dabei ist nun, vor dem Schreiben der ZIP-Datei die Größe des Streams per HTTP-Header dem Client mitzuteilen. Dabei möchte ich natürlich vermeiden, die ZIP-Datei erst temporär ins Dateisystem zu schreiben, die Größe zu ermitteln um dann die Datei an den Browser auzugeben. Das Schreiben der ZIP-Datei erfolgt unter Linux mit folgenden Aufruf: zip -0 -D -j -q -X - DATEI_LISTE -0 Keine Kompression -D Keine Verzeichnisse innerhalb der ZIP-Datei -j Dateien in der ZIP-Datei ohne Verzeichnissangaben -q Keine Status/Fehler-Meldungen -X Keine extra Unix-Dateiattrubute Weiß jemand, wieviele Bytes nun jeweils pro ZIP-Eintrag und wieviele Bytes für die allgemeine Strukture der ZIP-Datei geschrieben werden? Ich bin für jeden Hinweis dankbar, der mir das Lesen der ZIP-Spezifikation erspart. :-) -Timo
php::bar PHP Wiki - Listenarchive