Zone de téléchargement de PDF

Résolu/Fermé
Messages postés
152
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
7 juin 2021
-
Messages postés
152
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
7 juin 2021
-
Bonjour,

Voilà j'ai créé une page sur laquelle on peut télécharger des PDF (enfin quand je dis télécharger, c'est pas encore gagner ^^)

Donc voici la page sur laquelle il y a les liens de téléchargement
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
echo '<a href="telecharger.php?Fichier_a_telecharger=1.pdf&chemin=telechargement/">Telecharger</a><br>';
?>
</body>
</html>


Je fais donc appel à la page telecharger.php pour récupérer la valeur des variables
<?php


switch(strrchr(basename($Fichier_a_telecharger), ".")) {


case ".gz": $type = "application/x-gzip"; break;
case ".tgz": $type = "application/x-gzip"; break;
case ".zip": $type = "application/zip"; break;
case ".pdf": $type = "application/pdf"; break;
case ".png": $type = "image/png"; break;
case ".gif": $type = "image/gif"; break;
case ".jpg": $type = "image/jpeg"; break;
case ".txt": $type = "text/plain"; break;
case ".htm": $type = "text/html"; break;
case ".html": $type = "text/html"; break;
default: $type = "application/octet-stream"; break;

}

header("Content-disposition: attachment; filename=$Fichier_a_telecharger");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: $type\n");
header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger));
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
readfile($chemin . $Fichier_a_telecharger);
?>




J'ai donc bien une fenêtre qui me propose le téléchargement, mais pas pour le pdf, uniquement pour télécharger la page "telecharger.php"

Pouvez-vous m'aider svp? Je ne vois pas d'ou vient le problème.
Merci :-)

EDIT : Ajout des balises de code

2 réponses

Messages postés
2653
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
26 janvier 2022
486
Salut,

Ta variable $Fichier_a_telecharger dans ton script de téléchargement n'est pas définie.
Il faudrait l'initialisé avec la paramètre GET au début de ton script :
<?php
if (!empty($_GET['Fichier_a_telecharger'])) {
    $Fichier_a_telecharger = $_GET['Fichier_a_telecharger'];
} else {
    echo 'Pas de fichier à télécharger';
    exit();
}


Tes fichiers peuvent-ils être accessible directement ? Si oui, tu peux lancer le téléchargement de ces fichiers simplement en utilisant une balise a avec l'attribut download :
<a href="fichier_a_telecharger.pdf" download>Télécharger le fichier</a>


Bonne journée
Messages postés
152
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
7 juin 2021
27
Super, un grand merci Pitet, ça fonctionne :-D