「FileStreamResult クラス (System.Web.Mvc)」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator (ページの作成:「FileStreamResult クラス (System.Web.Mvc) FileStreamResultクラスとは、ストリーム(Streamクラスとその派生クラス)の内容を、バイナ...」) |
imported>Administrator (→例) |
||
(同じ利用者による、間の9版が非表示) | |||
1行目: | 1行目: | ||
− | + | FileStreamResultクラスとは、[[ASP.NET MVC]]の[[アクション・メソッド]]の戻り値([[ActionResult]]およびその派生クラス)として、ストリーム([[Streamクラス]]とその派生クラス)の内容をバイナリデータとしてそのまま送信する[[FileResultクラス]]を継承したクラスである。 | |
− | |||
− | |||
単純に送信するだけであれば、ストリームと[[MIMEタイプ]]を指定するだけで使えよく、非常に手軽である。ダウンロード確認ダイアログを表示する場合はHTTPレスポンスヘッダーにContent-Dispositionを設定する(例参照)。 | 単純に送信するだけであれば、ストリームと[[MIMEタイプ]]を指定するだけで使えよく、非常に手軽である。ダウンロード確認ダイアログを表示する場合はHTTPレスポンスヘッダーにContent-Dispositionを設定する(例参照)。 | ||
− | == | + | == 使用例 == |
=== ダウンロード確認ダイアログを表示する === | === ダウンロード確認ダイアログを表示する === | ||
ストリーム上のCSVファイルを送信し、ダウンロードの確認ダイアログを表示する例。 | ストリーム上のCSVファイルを送信し、ダウンロードの確認ダイアログを表示する例。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
− | + | using System.Web.Mvc; | |
− | + | using System.IO; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | // Streamを取得する。 | + | 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> | </source> | ||
== 関連項目 == | == 関連項目 == | ||
− | * [[ActionResult]] | + | * [[ActionResult]] - [[ASP.NET MVC]]のアクション・メソッドの戻り値として使うベースクラス。 |
+ | ** [[FileResult]] - ファイルをダウンロードさせるためのベースクラス。 | ||
+ | *** [[FileContentResult]] - バイト配列をHTTPレスポンスに書き込む。 | ||
+ | *** [[FilePathResult]] - 指定されたファイルパスの中身をHTTPレスポンスに書き込む。 | ||
+ | *** [[FileStreamResult]] - [[Streamクラス]]の中身をHTTPレスポンスに書き込む。 | ||
* [[ASP.NET MVC]] | * [[ASP.NET MVC]] | ||
+ | |||
== 参考文献 == | == 参考文献 == | ||
<references/> | <references/> |
2012年3月30日 (金) 06:17時点における最新版
FileStreamResultクラスとは、ASP.NET MVCのアクション・メソッドの戻り値(ActionResultおよびその派生クラス)として、ストリーム(Streamクラスとその派生クラス)の内容をバイナリデータとしてそのまま送信するFileResultクラスを継承したクラスである。
単純に送信するだけであれば、ストリームとMIMEタイプを指定するだけで使えよく、非常に手軽である。ダウンロード確認ダイアログを表示する場合はHTTPレスポンスヘッダーにContent-Dispositionを設定する(例参照)。
使用例[編集 | ソースを編集]
ダウンロード確認ダイアログを表示する[編集 | ソースを編集]
ストリーム上のCSVファイルを送信し、ダウンロードの確認ダイアログを表示する例。
using System.Web.Mvc;
using System.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");
}
}
関連項目[編集 | ソースを編集]
- ActionResult - ASP.NET MVCのアクション・メソッドの戻り値として使うベースクラス。
- FileResult - ファイルをダウンロードさせるためのベースクラス。
- FileContentResult - バイト配列をHTTPレスポンスに書き込む。
- FilePathResult - 指定されたファイルパスの中身をHTTPレスポンスに書き込む。
- FileStreamResult - Streamクラスの中身をHTTPレスポンスに書き込む。
- FileResult - ファイルをダウンロードさせるためのベースクラス。
- ASP.NET MVC