Open棟梁 wiki

目次

概要

.NETによるファイルのダウンロード処理

詳細

Response.Clear();によってHTTPレスポンスのヘッダ&エンティティをクリアし、Content-Disposition(MIMEタイプ)、Cache-ControlとPragma(キャッシュ制御)の再設定が可能。ファイルを受信しきらないうちにクライアントがTCP/IPのコネクションをClose削除した場合、Response.End();ステートメントで例外 が発生することがある。必要であれば、Response.End();ステートメントの前後をTry...Catchで囲んで正常系で終了させる。

/// <summary>ページロードのUOCメソッド(個別:初回ロード)</summary>
/// <remarks>実装必須</remarks>
protected override void UOC_FormInit()
{
    // フォーム初期化(初回ロード)時に実行する処理を実装する
    // TODO:

    // HTTPレスポンスのヘッダ&エンティティのクリア
    Response.Clear();

    // HTTPレスポンス ヘッダ再設定

    // MIMEタイプ
    Response.ContentType = "application/pdf";

    // キャッシュ無効化
    Response.Cache.SetCacheability(HttpCacheability.NoCache);

    //こっちは、専用アプリケーションで開く
    //Response.AppendHeader("Content-Disposition", "attachment;filename=test.pdf");
    
    //こっちは、IEからOLEオブジェクトを開く
    Response.AppendHeader("Content-Disposition", "inline;filename=test.pdf");
    
    // HTTPレスポンス エンティティ設定
    Response.WriteFile(
        Path.Combine(
            GetConfigParameter.GetConfigValue("TestFilePath"), "test.pdf"));

    // HTTPレスポンス エンティティ設定の終了
    Response.End(); 
}

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS