[PhP] Forcer le download.

Résolu/Fermé
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 27 mars 2006 à 10:36
 postgresophil - 3 juin 2015 à 13:04
Bonjour à tous.
Je voulais savoir comment on fait en PhP pour forcer l'utilisateur à télécharger un document (mon cas un PDF).
Que lorsque l'on clic sur le lien, on ait l'invite de télécharegement qui s'affiche.
Je sais que c'est avec des hearders mais je ne me souviens plus bien...
Merci à vous !
A voir également:

23 réponses

Le script mentionné ci-dessus est TRÈS INSÉCURE

Si par exemple on se trouve sur un serveur linux, il suffit de lui passer, par exemple,la valeur "../../../../../../etc/passwd" pour downloader le fichier /etc/passwd... On peut virtuellement accéder à n'importe lequel fichier du serveur à l'aide de ce script.

Utiliser plutot ce script, qui utilise basename() afin de se limiter aux fichiers du répertoire local, par exemple.

<?php
$file=$_GET['file'];

if (($file != "") && (file_exists("./" . basename($file))))
{
$size = filesize("./" . basename($file));
header("Content-Type: application/force-download; name=\"" . basename($file) . "\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: $size");
header("Content-Disposition: attachment; filename=\"" . basename($file) . "\"");
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
readfile("./" . basename($file));
exit();
}
?>
66