Forcer download image

Résolu
astuces72 Messages postés 7769 Date d'inscription   Statut Membre Dernière intervention   -  
astuces72 Messages postés 7769 Date d'inscription   Statut Membre Dernière intervention   -
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




A voir également:

1 réponse

Brissez-Kevin Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   6
 
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 7769 Date d'inscription   Statut Membre Dernière intervention   1 641
 
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

Discussions similaires