- PR -

エクセルのダウンロード→開く

1
投稿者投稿内容
なつ
会議室デビュー日: 2008/08/13
投稿数: 12
投稿日時: 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();」のコメントを取って復活→開くを選択してもエラーがでなくなった






IIJIMAS
ベテラン
会議室デビュー日: 2006/12/06
投稿数: 77
投稿日時: 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

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