• ASP.NET如何下载以二进制形式存储在数据库中的文件?
  • 发布于 2个月前
  • 207 热度
    2 评论
  • 李宏荣
  • 0 粉丝 35 篇博客
  •   
我有一个系统老板说用户上传的票据附件资料需要存储在SQLSERVER数据库中,不能以文件的形式直接存在数据库的某个文件夹下,我知道如果是以文件的形式直接存储在某个文件夹下的附件,用户想要下载,我只要直接做一个超链接到该文件路径就可以实现下载,那我想问的是如果是存储在数据库中的文件,用户要下载这些附件资料该如何实现啊?
用户评论
  • 林俪芳
  • 你就直接创建一个download.aspx的文件,在后台的Page_Load事件中实现下载的逻辑代码就可以了,我这边给你一个简单的实例:

       protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                        if (EBiddingSecruityHelper.ValidatedSecurityCode(Request.QueryString["RequestID"], Request.QueryString["PDK"]))
                        {
                            AttachContent fileInfo = AttachmentBLL.GetAttachContent(Convert.ToInt32(Request.QueryString["RequestID"].Trim()));
                            if (fileInfo != null)
                            {
                                Page.Response.Clear();//清除缓冲区所有内容
                                Response.Buffer = true;
                                Response.Charset = "GB2312";
                                Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                                string strFileName = Request.QueryString["FileName"];
                                Page.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8));
                                Page.Response.ContentType = "application/octet-stream";
                                byte[] file = fileInfo.AttachContent1.ToArray();//读出数据
                                Response.BinaryWrite(file);
                                Response.Flush();
                                Response.End();
                            }
                        }
                        else
                        {
                            Response.Write("你无权查看该文件!");
                        }
                  
                }
            }

  • 2018/3/27 11:02:00 [ 1 ] [ 0 ] 回复