2011-05-20 2 views
0

J'ai une requête pour faire un téléchargement d'image jpg de la même manière qu'un fichier pdf le ferait. Actuellement, si j'ajoute une image jpg à une page Web en tant que lien, elle s'ouvrira dans une autre fenêtre du navigateur plutôt que de la télécharger sur l'ordinateur de l'utilisateur. Cependant, un fichier pdf sera.Comment faire un téléchargement d'image jpg comme le fait un fichier pdf?

Voici le code standard:

<a href="/images/my-image.jpg">download image</a> 

Je vous serais reconnaissant toute orientation à ce sujet.

Merci.

+1

Vous devrez modifier la configuration de votre serveur Web ou écrire un scri pt modifiant l'en-tête lorsque le fichier est envoyé au navigateur.Les navigateurs essaieront toujours d'afficher des images. –

+2

Utilisez-vous un langage côté serveur? Si c'est le cas, je peux penser à utiliser l'en-tête content-disposition. http://stackoverflow.com/questions/1012437/uses-of-content-disposition-in-an-http-response-header – DeaconDesperado

Répondre

2

Si vous avez PHP sur le serveur, vous pouvez le faire.

<?php 
// Force download of image file specified in URL query string and which 
// is in the same directory as this script: 
if(!empty($_GET['img'])) 
{ 
    $filename = basename($_GET['img']); // don't accept other directories 
    $size = @getimagesize($filename); 
    $fp = @fopen($filename, "rb"); 
    if ($size && $fp) 
    { 
     header("Content-type: {$size['mime']}"); 
     header("Content-Length: " . filesize($filename)); 
     header("Content-Disposition: attachment; filename=$filename"); 
     header('Content-Transfer-Encoding: binary'); 
     header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
     fpassthru($fp); 
     exit; 
    } 
} 
header("HTTP/1.0 404 Not Found"); 
?> 

HTML doit ressembler à ce

<img src="/images/download.php?img=imagename.jpg" alt="test"> 
1

L'ouverture du type de contenu PDF à partir de votre navigateur est déterminée par un certain nombre de paramètres différents. Il peut être influencé par les associations de type de contenu à un programme dans les paramètres de votre navigateur. Il peut également être influencé par les paramètres dans le lecteur PDF lui-même, par exemple, Adobe Reader sous Modifier, Préférences ..., Internet onglet a une option pour les documents PDF devrait s'ouvrir dans le navigateur ou dans l'application directement.

3

La meilleure façon de le faire est de configurer votre serveur Web ou un script côté serveur (php, asp.net, etc.) pour servir votre fichier jpg avec the Content-Disposition header:

Content-Disposition: attachment; filename="my-image.jpg" 

Script:

Serveurs:

2

Vous pouvez utiliser la suggestion mentionnée ici: http://answers.yahoo.com/question/index?qid=20080417163416AAjlb7T

Il ressemblerait à quelque chose comme ceci:

access_file.php: 

<?php 

$f= $_GET['file']; 

$filename = explode("/", $f); 
$filename = $filename[(count($filename)-1)]; 

header('Content-Disposition: attachment; filename="'.$filename.'"'); 
readfile($f); 

?> 

Si vous collez le fichier access_file.php dans vos images dossier que vous pouvez alors simplement utiliser le lien:

<a href="/images/access_file.php?file=my-image.jpg" /> 
0

En HTML 5, nous avoir un attribut appelé téléchargement

<a href="img/myimage.jpg" download="myimage.jpg"><img src="img/myimage.jpg" /></a> 
Questions connexes