2010-11-23 4 views
4

ここにコードがあります。リンクをクリックするだけでイメージをクリックしたらSave as ..ダイアログを開く方法?

、[名前を付けて保存]ダイアログどのように我々は、jQueryの、またはJavaScriptを使用して、これをachiveでき

<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> 

を開く必要がありますか?

+7

クライアント側では行われていません。これは、ターゲットURL上のHTTPヘッダーを使用してサーバー側で行われます。 – Asaph

+0

PHP、たとえば:http://stackoverflow.com/questions/3718962/force-file-download-in-phpまたはhttp://stackoverflow.com/questions/3930490/javascript-handling-of-php-readfile-オクテットストリーム – Ben

答えて

1

を添加した場合、あなたが配置添付してファイルを送信するには、サーバー側でこれを指定する必要がある最も重要な

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

方法についてjDownload

使用例がメインページに表示されます。

+0

Thanks Jamie。助けになる。 –

0

残念ながら、IEでは動作しますが、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/> 

新しいブラウザは、古いページに固執します。

0

Click to save


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

そのdoesntの作品は、クロスブラウザ機能 "クロスブラウザのdesignMode" のために、このjQueryのプラグインを使用する場合は

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

-1

これを試してみてください

HTML:

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

スクリプト:?ダウンロードをお試しは=真は

+0

これはSaveAsダイアログをトリガーしないでしょう、 '_new'は単なる間違っています。 – Quentin

+0

私の答えを更新しました - 間違った新しいものを取り除き、サーバーの応答の必要条件に関する注釈を追加しました – mpapis

+0

?downlaod = trueが追加されたときに処理の添付ファイルを送るためにサーバー側でこれを指定する必要が最も重要です"部分:-) – Capsule

1

PHPやその他のプラットフォームを使用している場合は、いつでも強制ダウンロードテクニックを使用できます。

これは役立つかもしれない:

<?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); 
} 
?> 

は、画像のクリックイベントでアヤックスとして上記のスクリプトを呼び出します。

乾杯

関連する問題