「FileStreamResult クラス (System.Web.Mvc)」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | + | FileStreamResultクラスとは、ストリーム([[Streamクラス]]とその派生クラス)の内容を、バイナリデータとしてそのまま送信する[[ActionResultクラス]]を継承したクラスである。 | |
単純に送信するだけであれば、ストリームと[[MIMEタイプ]]を指定するだけで使えよく、非常に手軽である。ダウンロード確認ダイアログを表示する場合はHTTPレスポンスヘッダーにContent-Dispositionを設定する(例参照)。 | 単純に送信するだけであれば、ストリームと[[MIMEタイプ]]を指定するだけで使えよく、非常に手軽である。ダウンロード確認ダイアログを表示する場合はHTTPレスポンスヘッダーにContent-Dispositionを設定する(例参照)。 | ||
− | == | + | == 例 == |
=== ダウンロード確認ダイアログを表示する === | === ダウンロード確認ダイアログを表示する === | ||
ストリーム上のCSVファイルを送信し、ダウンロードの確認ダイアログを表示する例。 | ストリーム上のCSVファイルを送信し、ダウンロードの確認ダイアログを表示する例。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
− | + | public FileStreamResult DownloadCsv() | |
− | + | { | |
+ | // Content-Dispositionヘッダーに「attachement」と設定することで、 | ||
+ | // ブラウザにダウンロードするかの確認ダイアログを表示させる。 | ||
+ | // | ||
+ | // Content-Dispositionの値 | ||
+ | // attachment = ダウンロード | ||
+ | // inline = インライン表示 | ||
+ | // | ||
+ | // 「filename=」という部分を書き換えれば、多くのブラウザで保存 | ||
+ | // ダイアログの初期ファイル名となる。IE5.5以前はダメらしい。 | ||
+ | // さすがにもう存在しないだろう。 | ||
+ | HttpContext.Response.AddHeader( | ||
+ | "Content-Disposition", | ||
+ | "attachment; filename=file.csv"); | ||
− | + | // Streamを取得する。 | |
− | + | // CreateCsvメソッドは仮にあるものとする。 | |
− | + | Stream fileStream = CreateCsv(); | |
− | + | ||
− | + | // fileStreamの内容を結果として送信する。 | |
− | + | return new FileStreamResult(fileStream, "text/csv"); | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
== 関連項目 == | == 関連項目 == | ||
− | * [[ActionResult]] | + | * [[ActionResult]] |
− | |||
− | |||
− | |||
− | |||
* [[ASP.NET MVC]] | * [[ASP.NET MVC]] | ||
− | |||
== 参考文献 == | == 参考文献 == | ||
<references/> | <references/> |