2012-03-28 14 views
2

私のコードでは、サーバーにホストされているPDF/Jpg/bitmap/Png/Docx/Xlsx/Pptxファイルへの直接リンクであるいくつかのハイパーリンクを動的に生成しています。ハイパーリンクを開く/保存ダイアログボックスをブラウザで開くのではなく表示する方法

コードは多少このように見えます。

private void PopulateLinks(string linkText, string URL) 
{ 
    DIV_download.innerHtml += "<a href='" + URL + "'>" + linkText + "</a> <br/>"; 
} 

問題は、ブラウザが処理できるファイルはどれも、同じタブで開きます。 PDFとJPEG/Bitmap/Pngファイルのダウンロードダイアログボックスを強制的に押す方法はありますか?

私はこれをクライアント側で必要としているので、私はcontent-dispostionの方法を使うことができません.JavaScriptや他のマークアップを使って行うことができますか?私のクライアントはInternet Explorerしか使用していないので、Internet Explorerでしか動作しないのであれば十分です。

+0

は何あなたはこのクライアント側が必要なのですか? .htaccessファイルを変更できますか? – mowwwalker

+0

[IISでブラウザで開くのではなく、PNGをダウンロードするよう強制する]の複製が可能です(http://stackoverflow.com/questions/1040328/force-png-to-download-instead-of-opening-in-browser-with- iis) –

+0

私はこの問題にも苦しんでおり、PDFファイルの保存ダイアログを開こうとしています。 クライアント側のJavaScriptのみを使用してこれを行うことはできますか?サーバー側では何も変更しませんか? – shabdar

答えて

0

私はあなたがこのクライアント側を行うことはできないと確信しています。ただし、linkタグにtarget = _blank属性を追加することもできます。それが新しいウィンドウで開くよう強制されます。あるいは、あなたのクライアントがリンクを右クリックし、ターゲットを別名で保存させることもできます。

0

あなたがDOMメソッドdocument.execCommand()を使用してIEでこれを行うことができます。

<a href="javascript:void(0);" 
onclick="document.execCommand('SaveAs',true,'file.html');" 
>Save this page</a> 

このhttp://www.jtricks.com/bits/content_disposition.htmlから場合。おそらく、ブラウザ間の互換性を調査する必要があります。 Cross-browser Save As .txt

3

は私のコードのあなたのコード 例では Content-Disposition: attachmentプロパティを試してみてください:IE以外のブラウザでの作業のために興味のあるこの問題の情報もあります

response.setHeader("Content-Disposition: attachment", "filename=\"" + filePath + "\""); 
関連する問題