Katalog to coś takiego:
home/
file1.html
file2.html
Another_Dir/
file8.html
Sub_Dir/
file19.html
Używam tej samej klasy PHP Zip, która jest używana w PHPMyAdmin http://trac.seagullproject.org/browser/branches/0.6-bugfix/lib/other/Zip.php . Nie jestem pewien, jak spakować katalog, a nie tylko plik. Oto, co mam do tej pory:
$aFiles = $this->da->getDirTree($target);
/* $aFiles is something like, path => filetime
Array
(
[home] =>
[home/file1.html] => 1251280379
[home/file2.html] => 1251280377
etc...
)
*/
$zip = & new Zip();
foreach( $aFiles as $fileLocation => $time ){
$file = $target . "/" . $fileLocation;
if ( is_file($file) ){
$buffer = file_get_contents($file);
$zip->addFile($buffer, $fileLocation);
}
}
THEN_SOME_PHP_CLASS::toDownloadData($zip); // this bit works ok
ale kiedy próbuję rozpakować odpowiedni pobrany plik zip, otrzymuję komunikat „operacja niedozwolona”
Ten błąd występuje tylko wtedy, gdy próbuję rozpakować na komputerze Mac, kiedy rozpakuję za pomocą wiersza poleceń, plik rozpakuje się poprawnie. Czy podczas pobierania muszę wysyłać określony typ zawartości, obecnie „application / zip”