Verzeichnis ist so etwas wie:
home/
file1.html
file2.html
Another_Dir/
file8.html
Sub_Dir/
file19.html
Ich verwende dieselbe PHP-Zip-Klasse wie in PHPMyAdmin http://trac.seagullproject.org/browser/branches/0.6-bugfix/lib/other/Zip.php . Ich bin mir nicht sicher, wie ich ein Verzeichnis und nicht nur eine Datei komprimieren soll. Folgendes habe ich bisher:
$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
Wenn ich jedoch versuche, die entsprechende heruntergeladene Zip-Datei zu entpacken, wird "Operation nicht zulässig" angezeigt.
Dieser Fehler tritt nur auf, wenn ich versuche, auf meinem Mac zu entpacken. Wenn ich über die Befehlszeile entpacke, wird die Datei in Ordnung entpackt. Muss ich beim Herunterladen einen bestimmten Inhaltstyp senden, derzeit 'application / zip'?