Bonjour,
Je souhaite faire un download de plusieurs fichiers pdf à travers une boucle foreach.
J'ai le code qui permet de le faire pour un seul fichier à partir du header:
pour un seul fichier ça marche bien, j'ai une fenêtre qui permet de faire le downolad..pour plusieurs fichiers j'essaie de créer un zip:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $file = $this->getContentFile(); //renvoie le content stream $filename = ...; header("Content-Type: application/pdf"); header("Content-Disposition: attachement; filename=\"$filename\""); header("Pragma: no-cache"); header("Expires: 0"); echo $file;
le problème c'est que mon $file, ne représente pas le chemin vers le fichier, c'est le contenu du fichier. Je ne peux pas récupérer le path, ces fichiers viennent d'une appli externe et j'ai pas trop la main dessus..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $zipname = 'myarchive.zip'; $zip = new ZipArchive; $zip->open($zipname, ZipArchive::CREATE); header('Content-Type: application/zip'); header('Content-disposition: attachment; filename='.$zipname); header('Content-Length: ' . filesize($zipname)); readfile($zipname); foreach ($files as $file){ $zip->addFile($file); } $zip->close();
j'ai essayé aussi avec:
mais ça ne marche pas non plus...le contenu du zip est vide!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $zip->addFromString($zipname, file_get_contents($file));
est-ce que vous auriez une solution?
Merci!!
Partager