@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

csvファイルのダウンロード

1
投稿者投稿内容
nabe
常連さん
会議室デビュー日: 2006/04/13
投稿数: 29
投稿日時: 2006-04-20 15:52
いつもお世話になっております。
CSVのダウンロードについてご教授下さい。

vb.netにてCSVファイルのダウンロード処理を作成しましたが、
osによって動作が異なり問題になっております。
ダウンロードダイアログにて「開く」ボタン押下後の動作なのですが、
win2000、winXP SP1 では、
通常に別ウィンドウにCSVファイルが表示されのですが、
winXP SP2 では、
ダウンロード処理したフォーム(フレーム)にCSVが表示されてしまいます。

一体何故なのでしょうか?
winXP SP2でも別ウィンドウに表示させたいのですが、
どうすればよいのでしょうか?
どうかご教授ください。

以下はダウンロードの処理ロジックです
Response.AddHeader("Content-Disposition", _
"inline;filename=" & _
System.Web.HttpUtility.UrlEncode(Path.GetFileName(lstr_CsvFileName)) & ".csv")
Response.ContentType = "application/octet-stream-Dummy"
Response.WriteFile(lstr_CsvFilePath)
Response.Flush()
File.Delete(lstr_CsvFilePath)
Response.End()
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-04-20 17:43
いま他のOSが手元に無いのでどうともいえませんが

明示的にウインドウを開いてそちらにCSVが表示されるように
スクリプトを記述するっていうのはどうでしょうか
nabe
常連さん
会議室デビュー日: 2006/04/13
投稿数: 29
投稿日時: 2006-04-20 18:06
かるあさん返信ありがとうございます。

技術不足でどうすればよいか全然わかりません。
スクリプトとはJavaScriptのことですか?
すみません初心者のもので。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-04-20 18:31
引用:

nabeさんの書き込み (2006-04-20 18:06) より:
かるあさん返信ありがとうございます。

技術不足でどうすればよいか全然わかりません。
スクリプトとはJavaScriptのことですか?
すみません初心者のもので。


別にクライアントスクリプトなら何でもいいけど、JavaScriptでいいんじゃない?
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-04-20 19:54
引用:

nabeさんの書き込み (2006-04-20 18:06) より:
かるあさん返信ありがとうございます。

技術不足でどうすればよいか全然わかりません。
スクリプトとはJavaScriptのことですか?
すみません初心者のもので。



全然わからないからヒントをくださいってことですか?
だったら数行下にあるこのスレッドはどうでしょう

サブウインドウを開いて値を受け渡しています。
受け渡し先はASPですが、ASP.NETでも変わりないはずです。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30042&forum=7&10
nabe
常連さん
会議室デビュー日: 2006/04/13
投稿数: 29
投稿日時: 2006-04-21 16:13
みなさん、ご指導ありがとうございます。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-04-21 17:39
引用:

nabeさんの書き込み (2006-04-21 16:13) より:
みなさん、ご指導ありがとうございます。


終わったのかな?
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-04-21 18:42
UserAgentスレで話題になっていましたので、私も少し書いてみます。
あちらでも書いたように、ダウンロードダイアログが2回出るという現象を「仕様です!」と言い切って逃げてしまったヘタレな私ですが、inlineで良ければまた別の解決方法もあるかと思いました。

これはCSVではなくPDFファイルを出力する際に使った方法ですが、参考になるでしょうか。
  1. 出力ボタンのイベントでRegisterStartupScriptを使い、PostBack後のページから新規ウィンドウを開くようなスクリプトを作成しておく。
  2. 新規ウィンドウの遷移先は別のASP.NETのページにし、そのときにパラメータをGETで渡すようにする。
  3. ウィンドウの中から呼ばれたページはパラメータをもとにPDFファイルを作成し、inline出力。

PDFがCSVになるだけですが、何とかなるのではないかと思います。
一つ気になるのはパラメータをGETで渡している部分ですが、まずければスクリプトで新規ウィンドウにPOSTするような形にしても良いと思います。

少し難しいかもしれませんが、一つずつチャレンジしてみてください。
1

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