Direktori itu seperti:
home/
file1.html
file2.html
Another_Dir/
file8.html
Sub_Dir/
file19.html
Saya menggunakan kelas PHP Zip yang sama yang digunakan di PHPMyAdmin http://trac.seagullproject.org/browser/branches/0.6-bugfix/lib/other/Zip.php . Saya tidak yakin bagaimana cara zip direktori daripada hanya sebuah file. Inilah yang saya miliki sejauh ini:
$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
tetapi ketika saya mencoba untuk mengekstrak file zip yang diunduh terkait, saya mendapatkan "operasi tidak diizinkan"
Kesalahan ini hanya terjadi ketika saya mencoba unzip di mac saya, ketika saya membuka zip melalui baris perintah file unzip ok. Apakah saya perlu mengirim jenis konten tertentu saat diunduh, saat ini 'application / zip'