如何使用 http 处理程序打开数据库中存储为字节的文件

本文关键字:存储 字节 文件 数据库 http 何使用 处理 程序 | 更新日期: 2023-09-27 18:31:25

我把我的文件作为字节存储在我的数据库中。

如何使用其应用程序打开这样的文件(如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;
            }
        }

如何使用 http 处理程序打开数据库中存储为字节的文件

您可以使用正确的 MIME 类型将其写入响应流。您可以在此处找到 MS 文件格式 MIME 类型的列表,对于 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)
   {
   }
}