Forenindex » Programmierung/Entwicklung » PHP und MySQL » PHP ZIP File ist leer beim betrachten

PHP ZIP File ist leer beim betrachten

oliiix
Beiträge gesamt:

7. Mai 2008, 09:00
Bewertung:

gelesen: 2001

Beitrag als Lesezeichen
Hallo Zusammen:)

Ich wollte mal fragen, ob jemand von Euch schon Erfahrung mit ZIP Files und PHP gesammelt hat. Auf der momentanen HP, welche ich schreibe, generiere ich ein ZIP File und sende es zum Browser.
Eigentlich läuft das alles. Mein Problem ist nur, dass wenn ich das ZIP File in einem Explorer/ZIP File Manager öffne, wird dies leer dargestellt. Jedoch kann ich das File ohne Probleme extrahieren (z.B Kommandozeile/Shell) und die Dateien werden dann im Ordner aufgelistet. Hier mein Code:

Code
$filename = "./webcamArchive.zip"; 
if (file_exists($filename)) { unlink($filename); }
$zip = new ZipArchive();

if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
exit("cannot open <$filename>\n");
}

for ($t = 0; $t < count($images); $t++)
{
$zip->addFile($dir . $images[$t]); //HIER EVTL DER FEHLER??
}
$zip->close();

header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=webcamArchive.zip");
readfile($filename);
header( 'Location: ./index.php?cbDate=' . $selectedDate . '&cbLocation=' . $Location . '&ZIP=true') ;


Wie gesagt, läuft alles so wies sollte. Da jedoch die meisten Windows User die ZIP Files mit einem Tool öffnen, ist es unschön, wenn das gefüllte ZIP Archiv leer dargestellt wird^^

Danke schoonmal fürs durchlesen!
Grüsse aus Basel =)

PHP ZIP File ist leer beim betrachten

oesi50
  
Beiträge gesamt: 2315

7. Mai 2008, 09:27
Bewertung:

gelesen: 1983

Beitrag als Lesezeichen
hallo oliiix,

lass mal die letzte Zeile weg:

header( 'Location:......


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)

PHP ZIP File ist leer beim betrachten

oliiix
Beiträge gesamt:

7. Mai 2008, 09:44
Bewertung:

gelesen: 1974

Beitrag als Lesezeichen
Die geht bestimmt nicht, da hast du recht. Hab ich schon weg... Hatte noch nen Tipp erhalten, dass ich eine weitere Header Zeile einpflanzen soll für die Dateigrösse, hat jedoch auch noch nichts geholfen...

Code
$zip->close(); 
$file_size = filesize($filename);
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=webcamArchive.zip");
header("Content-length: $file_size");
readfile($filename);


Danke dir für die Antwort!!

(Dieser Beitrag wurde von oliiix am 7. Mai 2008, 09:45 geändert)

PHP ZIP File ist leer beim betrachten

oesi50
  
Beiträge gesamt: 2315

7. Mai 2008, 10:19
Bewertung:

gelesen: 1954

Beitrag als Lesezeichen
versuch mal das:
Code
$zip->addFile($dir . $images[$t], $images[$t]) 



Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)

PHP ZIP File ist leer beim betrachten

minou
Beiträge gesamt: 135

7. Mai 2008, 10:45
Bewertung:

gelesen: 1938

Beitrag als Lesezeichen
Hallo zusammen,

das ist nur so eine Idee...

muss wenn die Datei geschlossen wurde nicht danach wieder erneut ein Dateihanlder aufgerufen werden, bevor man überhaupt ein
readfile()
benutzen kann - oder sehe ich da etwas falsch?

Gruss

minou

P.S. gemäss dem "grossen" Skript wird die Zipdatei ja explizit geschlossen.