phpbar.de logo

Mailinglisten-Archive

[php] Berechnung der Groesse einer ZIP-Datei

[php] Berechnung der Groesse einer ZIP-Datei

Timo Schmidt php at xomit.de
Die Jun 28 22:14:00 CEST 2005


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