Zip, probleme de path

Zip, probleme de path - PHP - Programmation

Marsh Posté le 06-02-2009 à 15:04:30    

Bonjour,
 
Je suis amené a créer une archive ZIP d'un repertoire (non vide, avec sous repertoires), puis de la decompresser.
 
Je n'ai pas eu trop de soucis, le code suivant fonctionne bien :

Code :
  1. <?php
  2. function addFolderToZip($dir, $zipArchive){
  3.     if (is_dir($dir)) {
  4.         if ($dh = opendir($dir)) {
  5.             //Add the directory
  6.             $zipArchive->addEmptyDir($dir);
  7.          
  8.             // Loop through all the files
  9.             while (($file = readdir($dh)) !== false) {
  10.          
  11.                 //If it's a folder, run the function again!
  12.                 if(!is_file($dir . $file)){
  13.                     // Skip parent and root directories
  14.                     if( ($file !== "." ) && ($file !== ".." )){
  15.                         addFolderToZip($dir . $file . "/", $zipArchive);
  16.                     }
  17.                  
  18.                 }else{
  19.                     // Add the files
  20.                     $zipArchive->addFile($dir . $file);
  21.                  
  22.                 }
  23.             }
  24.         }
  25.     }
  26. }
  27. // Creation de l'archive ZIP
  28. $zip = new ZipArchive;
  29. $res = $zip->open("compteX.zip", ZipArchive::CREATE);
  30. if(!$res){ echo"open fail"; }
  31. addFolderToZip("compteX/", $zip);
  32. $res = $zip->close();
  33. if(!$res)
  34. echo "Close failed =/";
  35. mkdir("unzip" );
  36. $zip = new ZipArchive;
  37. if ($zip->open("compteX.zip" ) === TRUE) {
  38.     $zip->extractTo("unzip/" );
  39.     $zip->close();
  40.     echo 'ok';
  41. } else {
  42.     echo 'échec';
  43. }
  44. ?>


 
Ceci était mon test, afin de verifier que ca marche, le probleme c'est que pour mon cas réel, le path de mon repertoire a zippé est "complex"
 

Code :
  1. addFolderToZip("../../../upload/compteX/", $zip);


 
Ma foi l'archive se crée, mais mal, quand je la decopresse, je me retrouve avec mes données dans un repertoir "upload", et meme pas dans le repertoire unzip, mais a la racine de son repertoire parent...
 
Je ne sais pas trop comment faire pour resoudre cela.
 
Si quelqu'un a une idée, merci d'avance !

Reply

Marsh Posté le 06-02-2009 à 15:04:30   

Reply

Marsh Posté le 16-12-2011 à 16:48:11    

Bonjour vhAnton,
 
J'ai le même problème... Avez vous obtenu la solution ?
Merci

Reply

Marsh Posté le 16-12-2011 à 16:59:03    

Bonjour vhAnton,
 
J'ai exactement le même pbm
 
Le fichier zip se décompresse et place son contenu dézippé dans un répertoire du même nom que le fichier.zip à la racine du répertoire ciblé.
 
Cela se produit avec certains fichiers compressés .zip et pas avec d'autres de même nom. Cela doit provenir de la compression elle-même et peut être d'un fichier .htaccess à placer dans les répertoires avant compression ??
 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed