如何用http处理程序打开以数据库形式存储的文件?

时间:2012-04-18 08:53:52

标签: c# asp.net file informix generic-handler

我将我的文件存储为数据库中的字节。

如何使用其应用程序(如microsoft office,acrobat reader等)打开这样的文件或下载它。

我想用generic handler

执行此操作
 public class Attachement : IHttpHandler, System.Web.SessionState.IRequiresSessionState
    {
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                byte[] Attachement = (byte[])AttachementDAL.ReadAttachement(int.Parse(context.Session["attch_serial"].ToString())).Rows[0]["attach_content"];

            }
            catch (Exception ee)
            {
            }

        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

1 个答案:

答案 0 :(得分:1)

您可以使用正确的MIME类型将其写入响应流。您可以找到MS文件格式MIME类型here的列表,对于pdf,它是application/pdf。如果您想保持通用(所有二进制文件)使用application/octet-stream

 public void ProcessRequest(HttpContext context)
 {
   try
   {
     byte[] Attachement = 
           (byte[])AttachementDAL
                  .ReadAttachement(
                      int.Parse(context.Session["attch_serial"].ToString())
                   ).Rows[0]["attach_content"];

     context.Response.Clear();
     context.Response.ContentType = "application/msword";
     foreach(byte b in Attachement)
     {
       context.Response.OutputStream.WriteByte(b);
     }
     context.Response.OutputStream.Flush();
   }
   catch (Exception ee)
   {
   }
}