「FileStreamResult クラス (System.Web.Mvc)」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
(ページの作成:「FileStreamResult クラス (System.Web.Mvc) FileStreamResultクラスとは、ストリーム(Streamクラスとその派生クラス)の内容を、バイナ...」)
 
imported>Administrator
1行目: 1行目:
FileStreamResult クラス (System.Web.Mvc)
 
 
 
FileStreamResultクラスとは、ストリーム([[Streamクラス]]とその派生クラス)の内容を、バイナリデータとしてそのまま送信する[[ActionResultクラス]]を継承したクラスである。
 
FileStreamResultクラスとは、ストリーム([[Streamクラス]]とその派生クラス)の内容を、バイナリデータとしてそのまま送信する[[ActionResultクラス]]を継承したクラスである。
  

2012年3月30日 (金) 05:08時点における版

FileStreamResultクラスとは、ストリーム(Streamクラスとその派生クラス)の内容を、バイナリデータとしてそのまま送信するActionResultクラスを継承したクラスである。

単純に送信するだけであれば、ストリームとMIMEタイプを指定するだけで使えよく、非常に手軽である。ダウンロード確認ダイアログを表示する場合はHTTPレスポンスヘッダーにContent-Dispositionを設定する(例参照)。

ダウンロード確認ダイアログを表示する

ストリーム上のCSVファイルを送信し、ダウンロードの確認ダイアログを表示する例。

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");
}

関連項目

参考文献

外部リンク