-1

重複の可能性:
SQLDBにバイナリ形式で保存されたファイルをダウンロードする方法

いくつかのMSWordドキュメントをSQLServerに保存しました。ダウンロードしたいときは、まずサーバーにファイルとして保存してからユーザーがダウンロードできるようにしますが、サーバーのファイルシステムにファイルを保存しない方法を探しています...

4

1 に答える 1

2

IHttpHandler を実装するカスタム HttpHandler が必要です。MSDN のIHttpHandler.ProcessRequest メソッドを参照してください。適切な MIME タイプを設定し、バイナリ データをデータベースから HttpContext の OutputStream にリダイレクトします。

Docs.ashxと呼ばれるカスタム ハンドラーの例 (推測、テストされていません) :

using System.IO;
using System.Web;

public class Docs : IHttpHandler 
{
    public void ProcessRequest (HttpContext context) 
    {
        context.Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
        using (var streamReader = new StreamReader("fileSourceForDemonstration.docx"))
        {
            streamReader.BaseStream.CopyTo(context.Response.OutputStream);
        }
    }

    public bool IsReusable 
    {
        get { return false; }
    }
}
于 2011-10-11T12:25:27.097 に答える