2011-07-28 9 views
1

DBからバイト配列オブジェクトを取得するためのボタンクリックイベントを設定して、新しいブラウザウィンドウにファイルを表示します。今私はこれを多く持っています:Http Response Object新しいウィンドウで

Response.ContentType = "image/jpeg"; 
Response.AddHeader("content-length", fileBytes.Length.ToString()); 
Response.BinaryWrite(fileBytes); 

ここで、fileByesは私のバイト配列です。これは完全に機能していますが、私はこれを強制的に新しいウィンドウで開く必要があります。私はresponse.writeで応答にjavascriptを追加しようとしましたが、動作していないようです。

答えて

1

ボタンをクリックして新しいブラウザウィンドウを開くと、質問に投稿したコードが呼び出されます。あなたはそれを逆らってやろうとしています。ページのLoadイベントで

2

サーバーサイドコードから新しいウィンドウを開くことはできません。 JavaScriptからwindow.open()に電話し、そのファイルを返すページにURLを渡す必要があります。

+0

私はURLを持っていません、ファイルはDBにブロブとして格納されています。 – esastincy

+0

'Response.BinaryWrite()'でファイルを返すページを意味します。私は自分の答えを更新しました。 –

2

レスポンスの書き込みはサーバー側で処理されます。レスポンスの表示はクライアント側で処理されます。サーバーからの応答を考慮して、新しいウィンドウを開くようにクライアントに指示する必要があります。 getImage.aspxは、画像/ページを提供する責任ASP.NETページです

<a href="getImage.aspx" target="_blank">Get Image</a> 

0

空白.aspxにURLでハイパーリンクを使用して、
?param=4&param2としてURLにパラメータを渡す...など
があなたの応答コードを配置します。

関連する問題