Forcer download image

Résolu/Fermé
astuces72 Messages postés 7722 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 17 avril 2024 - 10 avril 2018 à 11:42
astuces72 Messages postés 7722 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 17 avril 2024 - 10 avril 2018 à 16:01
Bonjour à tous,

je cherchais un moyen de télécharger une image avec un clic
je suis donc tombé sur ce lien: https://www.destrucsaweb.com/langages/php/forcer-telechargement-fichiers.html

Et bien sur, ça ne fonctionne pas !

Ma page html simple
<a href="down_img.php?name_file=max06_24_57.jpg&chemin=dossier_utilisateurs/">Télécharger</a>


et mon fichier php
<?php
$name_file=$_GET["name_file"];
$chemin=$_GET["chemin"];
switch(strrchr(basename($name_file), ".")) {
case ".png": $type = "image/png"; break;
case ".gif": $type = "image/gif"; break;
case ".jpg": $type = "image/jpeg"; break;
default: $type = "application/octet-stream"; break;
}
header("Content-disposition: attachment; filename=$name_file");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: $type\n"); 
header("Content-Length: ".filesize($chemin . $name_file));
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
readfile($chemin . $name_file);
?>


Le fichier se télécharge bien, mais il est corrompu
Avec des recherche, le problème arrive en cas de caractère ou d'espace en entête dans le fichier php, mais je n'ai rien avant !

En téléchargeant par le ftp, je prend l'original, et la taille est la même.

Sauf que lorsque j'ouvre avec le bloc note, pour le fichier qui fonctionne j'ai:
ÿØÿà JFIF      ÿþ ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90ÿÛ C 


et l'autre j'ai:
���� JFIF      �� ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90�� C


Alors oui, y'a comme un soucis !

Une idée d'ou est ce problème, parce que moi, je vois pas trop ?

Merci




1 réponse

Brissez-Kevin Messages postés 12 Date d'inscription mardi 10 avril 2018 Statut Membre Dernière intervention 10 avril 2018 6
10 avril 2018 à 14:05
Si c'est genre quand on effectué un simple clic sur l'image et ça télécharge l'image, alors sache qu'il y a un attribut pour cela en HTML 5

https://www.alsacreations.com/astuce/lire/1603-html5-attribut-download.html
1
astuces72 Messages postés 7722 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 17 avril 2024 1 637
10 avril 2018 à 16:01
slt Kevin

tu es un génie :D
j'avais vu cette balise mais je pensais que c’était pour l'upload, alors qu'upload et download rien à voir quand même.

Merci à toi :)
0