Le répertoire est quelque chose comme:
home/
file1.html
file2.html
Another_Dir/
file8.html
Sub_Dir/
file19.html
J'utilise la même classe PHP Zip utilisée dans PHPMyAdmin http://trac.seagullproject.org/browser/branches/0.6-bugfix/lib/other/Zip.php . Je ne sais pas comment compresser un répertoire plutôt qu'un simple fichier. Voici ce que j'ai jusqu'à présent:
$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
mais lorsque j'essaye de décompresser le fichier zip téléchargé correspondant, j'obtiens "opération non autorisée"
Cette erreur ne se produit que lorsque j'essaie de décompresser sur mon mac, lorsque je décompresse via la ligne de commande, le fichier se décompresse ok. Dois-je envoyer un type de contenu spécifique lors du téléchargement, actuellement 'application / zip'