- - PR -
エクセルのダウンロード→開く
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-12-01 21:13
C#.net2003 で開発をしています。
Response.ContentType = "application/vnd.ms-excel"; Response.Charset = ""; Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=" + HttpUtility.UrlEncode("" + strDownLoadFileName + "") + ".xls"); Response.WriteFile(strOutFilePathHttp + strOutFileName); Response.Flush(); Response.Close(); System.IO.File.Delete(savePath); 画面の出力ボタンをクリックして、 ソースでエクセルを作成してクライアントにダウンロードします。 ファイルのダウンロードで「保存」をクリックすると成功しますが、「開く」をクリックするとファイルが無いとエラーが出て困っていました。 「Response.Close();」をコメントにするとエラーがでなくなりました。 やはり「Response.Close();」はしないと駄目ですよね? asp初心者です。 こんな質問で申し訳ありませんが、ここら辺を仕組みを教えて頂けないでしょうか? 宜しくお願い致します。 ■追記■ 「Response.Close();」→コメント→開くを選択してもエラーがでなくなった ↓↓↓ 「Response.Close();」のコメントを取って復活→開くを選択してもエラーがでなくなった |
|
投稿日時: 2008-12-01 22:13
HttpResponse.Close メソッド [MSDNライブラリ]
http://msdn.microsoft.com/ja-jp/library/system.web.httpresponse.close.aspx には 「クライアントへのソケット接続を閉じます。」 と書いてあります。 ですのでここではClose()は使用せずにEnd()を使うべきなのではないでしょうか。 以下のページは2005以降の説明でVBでcsvの例のコードですが、HttpResponseオブジェクトのメソッド、プロパティの呼び出し順は参考になると思います。 ファイルのダウンロード機能を実装する方法 [MSDNライブラリ] http://msdn.microsoft.com/ja-jp/library/cc719227.aspx |
1