2011-11-14 13 views
0

私は、ユーザがPDFファイルをダウンロードするためのオプションを提供しているグリッドビューを持っています。 PDFアイコンをクリックすると、新しいタブでpdfファイルが開かれ、ダウンロードが開始されることがあります。どうすればそれをいつもダウンロードできますか?ダイアログを開いてPDFをダウンロードする

+0

これは依存します。答えを提供する前に、グリッド内でPDFを定義または検索する方法についていくつかのコードを表示する必要があります。 –

+0

私はjavascriptを使用してファイルを開きます:window.open( 'src'); falseを返します。 – user728630

答えて

3

ボタン(画像ボタン、リンクボタンまたはボタン)を追加し、GridViewのRowCommandイベントを処理する必要があります。 RowCommandハンドラでは、ファイルをダウンロードするコードを記述することができます。

Responseオブジェクトのメソッドを使用できます。

string filepath=MapPath("~/files/file.pdf"); 
byte []bytes=System.IO.File.ReadAllBytes(filepath); 

Response.Clear(); 
Response.ClearHeaders(); 
Response.AddHeader("Content-Type", "application/octet-stream"); 
Response.AddHeader("Content-Length", bytes.Length.ToString()); 
Response.AddHeader("Content-Disposition","attachment; filename=file.pdf"); 
Response.BinaryWrite(bytes); 
Response.Flush(); 
Response.End(); 
2

常にダウンロードを強制するには、AVDが示すようにContent-Dispositionヘッダーを追加する必要があります。しかし、私はこれがまったく不要であることがわかります。私は、PDFへのリンクを新しいウィンドウで開くだけで十分だと思います。つまり、target="_blank"が定義されています。例:

<a href="file.pdf" target="_blank">invoice</a> 

ファイルをローカルに保存するか、画面上に表示するかは、ユーザーが自由に設定できます。重要なのは、これがユーザーが現在見ているページに干渉しないということです。

+0

これは私の問題を解決しました、ありがとうございます! – Wint

関連する問題