Bonjour à tous.

Je ne parviens pas à faire fonctionner ces bouts de codes.
merci de m'aider.

Etape clic sur une icone permettant de faire appel à une page pour zipper les fichiers contenus dans le répertoire uploads/traces/rep1/

download du fichier zippé obtenu et destruction de ce dernier sur le serveur.

code 1 :
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
		 <?php if ($user_rw=='y') {
			$c = sprintf('%03d',1);
			$filename = "uploads/traces/".$lieu1."_".$lieu2."/".$lieu1."_".$lieu2."_".$c.".bdl";
			$dossier = "uploads/traces/".$lieu1."_".$lieu2."/";
			$trace=$lieu1."_".$lieu2;
			if (file_exists($filename)) { ?>  		
			<div align='center'><a href="zip.php?dossier=<?php echo $dossier; ?>&amp;trace=<?php echo $trace; ?>&amp;nbr=<?php echo $statut_mes;?>" >
			<img src="image/trace.png" align="middle" alt="" border="0" ></a></td>
			<?php } else { ?>
			<div align='center'><a href="#" onClick="return confirmDelete('<?php echo "Aucune trace à télécharger"; ?>')">
			<img src="image/notrace.png" align="middle" alt="" border="0" ></a></td>
			<?php } } else { ?>
			<div align='center'><a href="#" onClick="return confirmDelete('<?php echo "Action non permise. Consulter l\'administrateur)"; ?>')">
			<img src="image/trace.png" align="middle" alt="" border="0" ></a></td>
			<?php } ?>
Code 2 : Page zip.php
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
/*

*/
$dossier = $_GET['dossier'];
$filename = $_GET['trace'];
$nbr = $_GET['nbr'];
require("include/zip2.lib.php") ; //indiquez le chemin d'accès à la librairie 
 
 
header('Content-Type: application/x-zip') ;
header('Content-Disposition: inline; filename=' .$filename.".zip" ) ;
header("Content-Transfer-Encoding: binary");
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header("Expires: 0");
 
 
$zip = new zipfile() ; //on crée un fichier zip
 
$a = 1 ;
while($nbr>=$a)
{
$c = sprintf('%03d',$a);
echo $c;
$file=$dossier.$filename."_".$c.".bdl";
$fp = fopen($file,'r') ; //on ouvre le fichier en lecture seule
$contenu = fread($fp, filesize($file)) ; //on enregistre le contenu
fclose($fp) ; //on ferme FTP
if (filesize($file)!=0)
{
$zip->writeFile($contenu, $file) ; //on ajoute le fichier
}
$a++; //on incrémente $a
}
$zip->writeFinish();
$archive = $zip->file() ; //on associe l'archive
echo $archive ;
 
 
 
?>
J'obtiens une erreur "fin de l'archive non attendue" en essayant d'ouvrir avec winrar ou winzip. l'archive est endommagée. Merci