2010-11-23 4 views
4

Voici le code.Comment ouvrir le fichier Enregistrer sous ..dialog sur un clic de l'image?

Le clic du lien, la boîte de dialogue Enregistrer devrait ouvrir

<a href="http://www.experts-exchange.com/xp/images/newNavLogo.png" target="_new"> 
<img src="http://www.experts-exchange.com/xp/images/newNavLogo.png" align="left" alt="" /> 
</a> 

Comment pouvons-nous cela en utilisant jQuery achive ou javaScript?

+7

Cela n'est pas fait du côté client. C'est fait du côté serveur avec des en-têtes HTTP sur l'URL cible. – Asaph

+0

PHP, par exemple: http://stackoverflow.com/questions/3718962/force-file-download-in-php ou http://stackoverflow.com/questions/3930490/javascript-handling-of-php-readfile- octet-stream – Ben

Répondre

1

Que diriez-vous jDownload? ?

Exemple d'utilisation est montré sur la page principale.

+0

Merci Jamie. Ça aide. –

0

Malheureusement, cela fonctionne uniquement avec IE mais pas avec Firefox.

</head> 
<script> 

function saveImageAs (imgOrURL) { 
    if (typeof imgOrURL == 'object') 
     imgOrURL = imgOrURL.src; 
    window.win = open (imgOrURL); 
    setTimeout('win.document.execCommand("SaveAs")', 500); 
    } 
</script> 
<body> 

    <A HREF="javascript: void 0" 
    ONCLICK="saveImageAs(document.anImage); return false" 
    >save image</A> 
    <IMG NAME="anImage" SRC="../apache_pb2.gif"> 
</body> 
-1
function dl(obj){ 
    window.location = obj.src; 
} 

<br/> 
.......... 

<br/> 

<img src="http://www.experts-exchange.com/xp/images/newNavLogo.png" align="left" alt="" onClick="dl(this);"/> 
<br/> 

navigateurs plus récents colleront à l'ancienne page si une redirection de téléchargement est fait.

0

Click to save


$("#img").click(function() { 
document.execCommand('SaveAs','1','give img location here'); 
}); 

Si cela fonctionne de doesnt utilisent ces plugins jquery pour la fonction cross navigateur "Cross-navigateur designMode"

http://plugins.jquery.com/project/designMode

-1

Essayez cette

html:

<img src="http://www.experts-exchange.com/xp/images/newNavLogo.png" align="left" alt="" /> 
scénario

:

$('img').each(function(){ 
    $(this).wrap('<a href="'+this.src+'?download=true" target="_blank"/>'); 
}); 

plus importante que vous devez spécifier sur le côté serveur pour envoyer le fichier avec pièce jointe de disposition lorsque downlaod = true a été ajouté

+0

Cela ne déclenchera pas le dialogue SaveAs, et '_new' est tout simplement faux. – Quentin

+0

J'ai mis à jour ma réponse - a supprimé le mauvais nouveau et ajouté une note sur l'exigence de réponse du serveur – mpapis

+0

Je suis curieux de connaître le '' plus important que vous devez spécifier sur le côté serveur pour envoyer le fichier avec la pièce jointe lorsque? Downlaod = true a été ajouté "partie ;-) – Capsule

1

Si vous utilisez PHP ou toute autre plate-forme, vous pouvez toujours utiliser la technique de téléchargement forcé.

Cela pourrait aider:

<?php 
$file = 'tag_cloud.gif'; 
if(!file){ 
    // File doesn't exist, output error 
    die('file not found'); 
}else{ 
    // Set headers 
    header("Cache-Control: public"); 
    header("Content-Description: File Transfer"); 
    header("Content-Disposition: attachment; filename=$file"); 
    header("Content-Type: image/gif"); 
    header("Content-Transfer-Encoding: binary"); 
    // Read the file from disk 
    readfile($file); 
} 
?> 

Appelez le script ci-dessus comme ajax en cas de clic de l'image.

A bientôt

Questions connexes