メインメニューを開く

差分

FileStreamResult クラス (System.Web.Mvc)

893 バイト追加, 2012年3月30日 (金) 06:17
FileStreamResultクラスとは、ストリーム(FileStreamResultクラスとは、[[ASP.NET MVC]]の[[アクション・メソッド]]の戻り値([[ActionResult]]およびその派生クラス)として、ストリーム([[Streamクラス]]とその派生クラス)の内容を、バイナリデータとしてそのまま送信するとその派生クラス)の内容をバイナリデータとしてそのまま送信する[[ActionResultクラスFileResultクラス]]を継承したクラスである。
単純に送信するだけであれば、ストリームと[[MIMEタイプ]]を指定するだけで使えよく、非常に手軽である。ダウンロード確認ダイアログを表示する場合はHTTPレスポンスヘッダーにContent-Dispositionを設定する(例参照)。
== 使用例 ==
=== ダウンロード確認ダイアログを表示する ===
ストリーム上のCSVファイルを送信し、ダウンロードの確認ダイアログを表示する例。
<source lang="csharp">
public FileStreamResult DownloadCsv(){ // Content-Dispositionヘッダーに「attachement」と設定することで、 // ブラウザにダウンロードするかの確認ダイアログを表示させる。 // // Content-Dispositionの値 // attachment = ダウンロード // inline = インライン表示 // // 「filename=」という部分を書き換えれば、多くのブラウザで保存 // ダイアログの初期ファイル名となる。IE5using System.Web.5以前はダメらしい。 // さすがにもう存在しないだろう。Mvc; HttpContext.Response.AddHeader( "Content-Disposition", "attachment; filename=fileusing System.csv")IO;
public class HomeController : Controller { public FileStreamResult DownloadCsv() { // Content-Dispositionヘッダーに「attachement」と設定することで、 // ブラウザにダウンロードするかの確認ダイアログを表示させる。 // // Content-Dispositionの値 // attachment = ダウンロード // inline = インライン表示 // // 「filename=」という部分を書き換えれば、多くのブラウザで保存 // ダイアログの初期ファイル名となる。IE5.5以前はダメらしい。 // さすがにもう存在しないだろう。 this.HttpContext.Response.AddHeader( "Content-Disposition", "attachment; filename=file.csv"); // Streamを取得する。 // CreateCsvメソッドは仮にあるものとする。 Stream fileStream = CreateCsv(); // fileStreamの内容を結果として送信する。 return new FileStreamResult(fileStream, "text/csv"); } }
</source>
== 関連項目 ==
* [[ActionResult]]- [[ASP.NET MVC]]のアクション・メソッドの戻り値として使うベースクラス。** [[FileResult]] - ファイルをダウンロードさせるためのベースクラス。 *** [[FileContentResult]] - バイト配列をHTTPレスポンスに書き込む。 *** [[FilePathResult]] - 指定されたファイルパスの中身をHTTPレスポンスに書き込む。*** [[FileStreamResult]] - [[Streamクラス]]の中身をHTTPレスポンスに書き込む。
* [[ASP.NET MVC]]
 
== 参考文献 ==
<references/>
匿名利用者