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 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 <?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; ?>&trace=<?php echo $trace; ?>&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 } ?>J'obtiens une erreur "fin de l'archive non attendue" en essayant d'ouvrir avec winrar ou winzip. l'archive est endommagée. 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
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 ; ?>
Partager