Mailinglisten-Archive |
Aloha,
> ----------
> Von: Matthias Kunze[SMTP:mk_(at)_mk2000-online.de]
>
> wie kann ich mit php eine zip-datei erstellen, die eine ganz bestimmte
> datei enthält, die vorher anhand von benutzer-eingaben generiert wurde?
>
Das Problem ist, dass du zum Packen mit zip mindestens eine Temporäre
Datei Brauchst. Du kannst nicht die Eingaben an das zip-Kommando per
STDIN senden und die Ausgabe über STDOUT abholen ... leider...
Bei mir tut in etwa:
header ("Content-type: applicaton/x-mathias_gloss");
header ('Content-Disposition: attachment; filename='
. $h_ueb['FileName'] );
header( "Content-Description: Automatic Generated Data" );
$s_zipcommand = '/usr/local/bin/zip -j -n .jpg - '
. $s_tempfilename_h;
$fp = popen( $s_zipcommand, 'r');
while ( $s_zipout = fread($fp, 1024) ) {
echo $s_zipout;
}
Der Schnippsel macht folgendes:
-j weis ich nicht mehr ;-)
-n .jpg : jpgs nicht komprimieren
- nach STDOUT schreiben, Datei in
$s_tempfilename_h einpacken
Du musst natürlich vorher noch den entsprechenden Content-Type setzen, den
ich
ziemlich verbogen habe, damit der IE die Datei nicht immer öffnen will.
Wenn du das Script noch in etwa so aufrufst:
script.php/parameter1/parameter2/parameter3/parameter4/download.zip
Dann wollen IE und NS es unter dem Namen download.zip speichern.
Das da
parameter1/parameter2/parameter3/parameter4/download.zip
findest du in getenv('PATH_INFO')
Viele Grüße, Mathias
php::bar PHP Wiki - Listenarchive