Bonjour à tous,

J'ai besoin de proposer aux utilisateurs le téléchargement de PDFs compressés dans une archive ZIP. J'ai testé plusieurs scripts trouvés sur le net jusqu'à trouver mon bonheur. Du moins le pensais-je ! Il s'avère que mon archive est uniquement lisible sous Linux. Incompréhension totale !
Voici mon code :
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
$request = $this->getRequest();
        $session = $request->getSession();
        $zip = new ZipArchive();
        $zipName = 'cotations.zip';
        $dir = $this->get('kernel')->getRootDir() . '/../web/bundles/blabla/pdf/'.$session->getId().'/zip/';
        if(file_exists($dir.$zipName)){
            unlink($dir.$zipName);
        }
        if($zip->open($dir.$zipName, ZipArchive::CREATE) === true)
        {
            echo '&quot;cotations.zip&quot; ouvert<br/>';
            $files = scandir($dir);
            unset($files[0], $files[1]);
            foreach($files as $file) {
                $zip->addFile($dir.$file, $file);
            }
            // Et on referme l'archive.
        }
        else
        {
            echo 'Impossible d'ouvrir &quot;cotations.zip<br/>';
            // Traitement des erreurs avec un switch(), par exemple.
        }
        $zipNameContents = $zip->filename;
        $zip->close();
        $response = new Response(file_get_contents($zipNameContents));
        $response->headers->set('Content-Type', 'application/zip');
        $d = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, $zipName);
        $response->headers->set('Content-Disposition', $d);
 
        return $response;
Et voici la requêtes de téléchargement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
curl 'http://application.vgrt/web/app_dev.php/pdf-telechargement' 
-H 'Host: application.vgrt' 
-H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 Iceweasel/31.8.0' 
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' 
-H 'Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3' 
-H 'Accept-Encoding: gzip, deflate' 
-H 'Referer: http://application.vgrt/web/app_dev.php/validation'
-H 'Connection: keep-alive'
Auriez-vous un tuto traitant de la création d'archive sous symfony vers lequel me rediriger à la limite ?