Tworzenie i serwowanie spakowanych plików za pomocą php

Próbuję użyć następującego kodu do utworzenia pliku zip z katalogu i podania go użytkownikowi za pomocą pobrania http:

 // write the file
file_put_contents($path . "/index.html", $output);

// zip up the contents
chdir($path);
exec("zip -r {$course->name} ./");

$filename = "{$course->name}.zip";

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' .urlencode($filename));
header('Content-Transfer-Encoding: binary');

readfile($filename);

Mogę utworzyć plik zip, ale pobieranie go przez http nie działa. Jeśli ściągnę plik zip, który został utworzony przy użyciu klienta ftp, to Stuffit Expander Maca rozpakuje pliki w porządku, ale jeśli ściągnę je przez http, rozpakowanie Maca stworzy niekończącą się pętlę. Mówię przez to, że plik, który pobieram, nazywa się course.zip, a następnie rozpakowanie pliku daje course.zip.cpgz i rozpakowanie tego pliku daje course.zip ponownie .. i na i dalej.

Czy ktoś ma jakieś pomysły?

Dzięki!

questionAnswers(4)

yourAnswerToTheQuestion