- PR -

webブラウザへファイルのダウンロード

1
投稿者投稿内容
AOPP
ベテラン
会議室デビュー日: 2002/11/18
投稿数: 66
投稿日時: 2003-07-23 10:34
AOPPです。

Response.WriteFile利用したファイルのダウンロードですが、
「ファイルのダウンロード」ポップアップ画面が表示され、”保存”は、問題なしなのですが
”開く”が二回表示されてます。(ポップアップ画面は同じ内容 開く-開く-アプリ実行)

ボタンイベントで以下実行した。
Response.ContentType = "Application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment;filename=aopp.pdf")
Response.WriteFile("ファイル名")
****************
Response.Flush()
Response.Close()
Response.ClearHeaders()
などクリアもイロイロいれてみましたが、だめです。

★1点気になるのが子画面起動(JAVASCRIPTのOWindows.Open)時に、子のaspx側に同一の
コードをPage_Loadにいれたらの初回表示の場合はうまくいくのですが、"保存”をすると子画面のブラウザが残ったままです。(消せれば解決なのに)

★ポストバック時のResponse.WriteFileに問題ないですよね!!!
★子画面のブラウザ消去する方法も知りたい。
(HTMLを組み込めない 理由があるのかな)

NYRL
ベテラン
会議室デビュー日: 2003/07/14
投稿数: 90
投稿日時: 2003-07-23 11:16
こんにちわNYRLです。

ブラウザ側のボタンで onclick="window.open('URL','_top');return false;"
と呼んで

サーバー側で
コード:
		Response.Clear()
		Response.ContentType = "application/octet-stream-dummy"
		Response.AppendHeader("Content-Disposition", "attachment; filename=" & HttpUtility.UrlEncode("ファイル名"))
		Response.BinaryWrite("ファイル名")
		Response.End()


と返すとIE6だとダイアログが一つで余分な画面も開きませんでした。
ので試してみてください。
AOPP
ベテラン
会議室デビュー日: 2002/11/18
投稿数: 66
投稿日時: 2003-07-23 13:41
aoppです。

NYRLさんうまくいきました。
分かったら教えてください。

onclick="window.open('URL','_top');return false;"
の 部分を

onclick="return OpenWin()"

<SCRIPT language="JavaScript">
<!--
function OpenWin(){
aopp = "WebForm6_Resuponse_pdf.aspx";
win1 = window.open(aopp) ;
return false;
}
//-->
</SCRIPT>
とするとだめなのですかね!!!!(余計な画面がでます。)



NYRL
ベテラン
会議室デビュー日: 2003/07/14
投稿数: 90
投稿日時: 2003-07-23 13:45
試してないのですが
win1 = window.open(aopp) ;

win1 = window.open(aopp,'_top') ;

にするとどうでしょうか?

実は元の文も top指定 なしでOKなブラウザと
ダメ(空白ページが残る)なブラウザがあったので・・・
AOPP
ベテラン
会議室デビュー日: 2002/11/18
投稿数: 66
投稿日時: 2003-07-23 13:56
aoppです。

NYRLさんうまくいきました。


,'_top'を見え落としてました。
ありがとうございます。
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2003-07-23 15:03
うまくいっているようですが、質問してよいでしょうか?

・やりたいことは「ユーザにpdfをダウンロードさせたい」でしょうか?
・_topに出していると、確認ダイアログで、「開く」を押すと、
次からダイアログが出なくなったりしないでしょうか?
1

スキルアップ/キャリアアップ(JOB@IT)