- - PR -
CSVファイルのダウンロード
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-10-07 18:25
いつもお世話になっております。
現在、ASP.netでの開発をしており、ダウンロード機能を作成しましたが WindowsXP SP2のクライアントで行うと、ダウンロード時の[保存][キャンセル][開く]ボタンが表示されるポップアップ時に元画面が終了してしまいます。 もし対応方法があれば教えて頂けないでしょうか? よろしくお願いします。 ダウンロードは以下の方法で行いました。 Response.Clear() Response.AddHeader("Content-Disposition", "attachment;filename=test.csv") Response.ContentType = "application/octet-stream" Response.ContentEncoding = System.Text.Encoding.GetEncoding("Shift-JIS") strData = 内容 Response.Write(strData & vbCrLf) Response.Flush() | ||||
|
投稿日時: 2004-10-07 19:14
他の、SPなしとか、SP1とか、2000とかでは、元画面は終了しない、ということでしょうか? ただ、私が確認している現象として、submitした戻りとしてダウンロードさせた場合、NNやOperaでは大丈夫ですが、IEだとJavaScriptが効かなくなる、ということがあります。これは、レスポンスの解釈の仕方によるのでしょう。え〜、うまく説明できませんが、「いまあるHTML」を、新しいレスポンスで上書きするのですから、仕方がないのかなぁ?とか思ったり。 _________________ | ||||
|
投稿日時: 2004-10-07 19:31
早速の返答ありがとうございます。
他のバージョン、2000での検証も行いました。 他では問題が発生しませんでした。 XP SP2により、IEのセキュリティに関する更新があり そういった現象がでているのではと思っています。 他の方法はありますか? SP2を充てないという運用上で今のところは対応するしかないですか? ※ ご指摘のとおり、JavaScriptが効かなくなるといったことも現象がありました。 (データ定義が・・・といった感じの) | ||||
|
投稿日時: 2004-10-12 20:55
私のPCはSP2を当てていないのですが、VirtualPCにインストールしたXPには当てていたのを思い出したので、やってみました。が、元の画面は消えませんね・・・。しかも、『submitした戻りとしてダウンロードさせた場合、JavaScriptが効かなくなる』という現象が無くなっていました。
で、自分の作ったものと見比べてみると、 ・ContentTypeが、"text/csv"である ・内容を、BinaryWriteメソッドを使って、バイト配列で出力している ・内容出力後、Endメソッドで閉じている という違いがありました。 | ||||
|
投稿日時: 2004-10-13 09:48
カネさんのコーディング手法にて、当方で確認したところ問題なく動作しました。
[クライアント環境] WinXP SP2 IE 6.0 SP2 # イントラ | ||||
|
投稿日時: 2004-12-02 18:32
過去ログを検索していたら自分と同じ事で悩んでいる方が・・・
ピンポイントで見つかって喜んでいたら 解決までは至っていなかったので 古いスレッドですが横から失礼します。 私も同じ現象で WinXP SP1で問題なく動作していたものが WinXP SP2を適用後、同じ様に元画面が終了してしまうようになってしまいました。 カネさんと違う点は ポップアップ時に元画面が終了するのではなく [開く][保存][キャンセル]を押すと終了してしまう ということです。 また、カネさんは書かれていないですが おそらくフレームを使用しているのではないかと・・・ というのも、いろいろと検証した結果フレームなしの場合は 以前の動きと変わらなかったからです。 解決方法をご存知の方。ご教授お願いします。 [クライアント環境] WinXP SP2 IE6.0 SP2 | ||||
|
投稿日時: 2004-12-02 20:52
こんにちは。
リンク元に Target="_top" と追加するとどうでしょうか? | ||||
|
投稿日時: 2004-12-02 22:07
返答有難うございます。
これは具体的にどのように実現すれば良いのでしょうか? ご教授ください。 |