<a href="downloadImg.php?image=mon_image.jpg" target="_blank" >Télécharger</a>
<?php /* * Fichier : downloadImg.php * Force le téléchargement du fichier * @image : paramètre envoyé via l'url en $_GET */ //récupération de l'image en paramètre $file = !empty($_GET['image']) ? $_GET['image'] : NULL; //si l'image existe if($file && file_exists($file)){ header('Content-Type: application/force-download'); header("Content-Transfer-Encoding: binary"); header('Content-Disposition: attachment; filename='.basename($file)); header('Pragma: no-cache'); header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0'); header('Expires: 0'); readfile($file); exit(); }else{ echo 'Le fichier n\'existe pas : '.realpath($file); }
Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire
200 internautes nous ont dit merci ce mois-ci
Merci pour la réponse. Mais, une inquiétude. Dans le lien Est-ce que je vais mettre seulement le nom de l'image ou plutôt le chemin complet de l'image ? Exemple : Quand j'ai essayé les deux, je reçois bien la valeur de mais, par contre, le téléchargement n'est pas démarré.
Que je dois-je faire ?
Merci
L'url doit fonctionner aussi je pense.
Par contre, vu qu'il y a des slashes, essaye d'ajouter un urlencode http://php.net/manual/fr/function.urlencode.php
Ou au pire, un addSlashes (mais dans ce cas, il faudra surement un stripslashes à la récupération du get )
Essaye aussi le header
à la place .
J'ai essayé mais sans succès. Voici ce que j'ai enfin trouvé et qui a résolu mon problème:
Merci beaucoup