Bonjour,
Je pense pouvoir trouver une solution, quoique que peu élégante, à mon problème, mais j'aimerais savoir pourquoi ce que je veux réaliser ne marche pas.
Je m'explique...
Le but est de permettre au visiteur de télécharger un paquet de photos en un seul fichier (zip).
J'arrive à créer de fichiers Zip (et à provoquer le téléchargement), le problème n'est pas là.
Le problème: je n'y arrive pas en utilisant l'adresse complète des fichiers.
Exemple:
Voici la structure ou se trouve mon programme de "zippage":
Voici mon prgramme qui fait le travail (zip_download.php):
Les noms des fichiers à zipper se trouvent dans un tableau $ARY.
On le voit, je teste ce programme avec 4 versions de mon tableau $ARY;
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 $ARY=array(); $ARY=array("test3.php","download_un_fichier.php"); //$ARY=array("0011_Bruges_113559.jpg","0012_Bruges_113655.jpg","bidon/test666.php","../timer1.php") ; //$ARY=array("/galeries/Bruges_2018/bruges/800/galeries/Bruges_2018/bruges/800/0011_Bruges_113559.jpg","/galeries/Bruges_2018/bruges/800/galeries/Bruges_2018/bruges/800/0012_Bruges_113655.jpg") ; //$ARY=array("/home/vivonsla/public_html/galeries/Bruges_2018/bruges/800/galeries/Bruges_2018/bruges/800/0011_Bruges_113559.jpg","/home/vivonsla/public_html/galeries/Bruges_2018/bruges/800/galeries/Bruges_2018/bruges/800/0012_Bruges_113655.jpg") ; $zip = new ZipArchive; $res = $zip->open('truc3.zip', ZipArchive::CREATE); if ($res === TRUE) { for ($i=0;$i<count($ARY);$i++) { $zip->addFile($ARY[$i]); } }
Le premier, zippant simplement 2 fichiers du même dossier que mon programme, fonctionne parfaitement.
Le second, un peu plus complexe, va chercher un fichier dans un sous-dossier, ainsi qu'un fichier dans un dossier supérieur, via un chemin relatif: fonctionne parfaitement.
Les versions 3 et 4 utilisent des fichiers référencés par une adresse absolue, l'une par "/dossier....", l'autre par l'adresse racine de mon site sur le serveur.
Aucune de ses 2 versions ne fonctionne.
C'est là que je fais appel aux experts.. quelqu'un peut-il m'aider ?
Merci d'avance de votre aide,
Mike
Partager