Bonjour à tous.

Je code un site internet en php et j'utilise CURL pour utiliser les fonctionnalités d'une API.

Je veux télécharger un fichier PDF avec le bon nom qui est mis grâce à l'API (lorsque l'on télécharge la fiche directement du swagger cela met le bon nom).

Voici ce que je fais pour télécharger le fichier:

    $curl = curl_init();

            curl_setopt_array($curl, array(
                CURLOPT_URL => "URL",
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 0,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "GET",
                CURLOPT_HTTPHEADER => array(
                    rtrim($token, "\r\n")
                ),
            ));

            $response = curl_exec($curl);

            header('Cache-Control: public');
            header('Content-type: application/pdf');
            header('Content-Disposition: attachment');

            curl_close($curl);
            echo $response;

Cependant cela ne se télécharge pas avec le bon nom. Quelqu'un aurait une idée de comment je peux faire ?

Merci !

2 réponses


Merci lolo3129, mais je ne vois pas où cela est écrit...

j'ai déjà la partie

header('Content-Type: application/pdf');

J'ai également une partie

header('Content-Disposition: attachment; filename="downloaded.pdf"');

sans la partie filename car ce n'est pas un nom que je veux mettre à la main mais le nom que je veux récuperer de l'API

et je ne comprends pas trop à quoi sert

readfile('original.pdf');

Encore merci !

c'est bon j'ai réussi à récupérer le nom puis à le mettre avec filename ! merci beaucoup !