PDA

Voir la version complète : faire télécharger une image jpg au lieu de l'afficher


David.A
08/03/2004, 10h13
Voilà, je souhaite savoir s'il existe un moyen (js, htacces...) de faire un lien vers un fichier jpg, de tel sorte que lorsque le visiteur clic sur le lien, il télécharge le fichier, comme s'il avait fait un "bouton droit / enregistrer l'image sous", au lieu de voir l'image s'afficher dans le navigateur

sur google j'ai pas trouvé, mais bon c'est un peu spécial, donc bon :)

mathieu
08/03/2004, 10h39
Euuuhh, pourquoi tu le zip pas ?

David.A
08/03/2004, 10h47
parce que ^_^

contraintes diverses et variées, mais valables

donc la question reste posée

L.Boggio
08/03/2004, 12h11
David.A écrivait :
Voilà, je souhaite savoir s'il existe un moyen (js, htacces...) de faire un lien vers un fichier jpg, de tel sorte que lorsque le visiteur clic sur le lien, il télécharge le fichier, comme s'il avait fait un "bouton droit / enregistrer l'image sous", au lieu de voir l'image s'afficher dans le navigateur

sur google j'ai pas trouvé, mais bon c'est un peu spécial, donc bon :)
Au mieux, tu peux faire afficher la fenêtre 'ouvrir/enregistrer'.
Pour obtenir un résultat de ce genre, soit u joues avec les .htaccess pour changer le mime-type de .jpg, soit tu appelles un script php qui retournes un header de téléchargement, puis fais un open du fichier image.
Par-contre, je ne peux pas trop t'aider sur les mime-types à retourner ou sur les headers...

David.A
08/03/2004, 12h18
l'idée des headers me semble pas mal :)
mais c'est pas assez précis pour m'aider vraiment :)

quelqu'un sait comment on fait?

L.Boggio
08/03/2004, 12h35
David.A écrivait :
l'idée des headers me semble pas mal :)
mais c'est pas assez précis pour m'aider vraiment :)

quelqu'un sait comment on fait?
un fichier 'image.php' qui recoit en argument POST une variable, traduite en $file

if (file_exists($file))
{
header("Content-type: LE HEADER QUI VA BIEN");break;
header("Content-disposition: inline; filename=".$file);
readfile($file);
}



est un bon début. Reste le bon header à mettre ;-)

pour faire 'propre', aussi, tu dois pouvair faire une rewrite rule qui transforme *.jpg en image.php?file=%1.jpg
ainsi, quand tu appelles depuis un navigateur
la_jolie_image.jpg, ça se transforme en
image.php?file=la_jolie_image.jpg