Bonjour,
j'utilise la librairie ziplib pour ziper des fichiers, dans chaque dossier j'ai 3 fichiers PDF j'arrive a ziper un par un mais ce n'est pas le but,
j'aimerais ziper une archive avec tout les fichiers contenus dans le dossier.
a l'unité j'utilise ce code :
pour le faire avec trois fichier j'ai bien ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 require( "lib/zip.lib.php" ) ; //indiquez le chemin d'accès à la lib $zip = new zipfile( ) ; //on crée une nouvelle instance zip $nom_fichier = 'pdf/'.$date.'/'.$vin.'/clim.pdf'; //nom du fichier à compresser $fo = fopen($nom_fichier,'r') ; //on ouvre le fichier $contenu = fread($fo, filesize($nom_fichier)) ; //on enregistre le contenu fclose($fo) ; //on ferme le fichier $zip->addfile($contenu, $nom_fichier) ; //on ajoute le fichier $archive_zip = $zip->file() ; //on associe l'archive $open = fopen( 'pdf/'.$vin.'.zip' , "wb"); //crée le fichier zip fwrite($open, $archive_zip); //enregistre le contenu de l'archive fclose($open); //ferme l'archive
j'ai essayé d'y placer mes trois fichiers en faisant un scandir avant mais ca ne me les prend pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 require( "lib/zip.lib.php" ) ; // librairie ZIP $zip = new zipfile () ; //on crée une instance zip // liste des fichiers à compresser $files = array ( 'monrep/doc1.doc' , 'monrep/doc2.doc' , 'monrep/doc3.doc' ) ; $i = 0 ; while ( count( $files ) > $i ) { $fo = fopen($files[$i],'r') ; //on ouvre le fichier $contenu = fread($fo, filesize($files[$i])) ; //on enregistre le contenu fclose($fo) ; //on ferme fichier $zip->addfile($contenu, $files[$i]) ; //on ajoute le fichier $i++; //on incrémente i } $archive = $zip->file() ; // on associe l'archive // on enregistre l'archive dans un fichier $open = fopen( 'monrepertoire/monfichier.zip' , "wb"); fwrite($open, $archive); fclose($open);
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 // exemple avec le répertoire courant $repertoire = 'pdf/'.$date.'/'.$vin.'/'; // la valeur de retour de scandir est un tableau $tabFichiers = scandir($repertoire); // si le répertoire est valide if ($tabFichiers !== false) { // on parcourt le tableau for ($i = 0; $i < sizeof($tabFichiers); $i++) { $nomFichier = $tabFichiers[$i]; // on évite l'affichage des fichiers cachés en testant le premier caractère du nom if ($nomFichier[0] != ".") { echo ''.$nomFichier.','; } } } else { die("Erreur: repertoire invalide"); };
Partager