可能重复:
How to Download A file stored in SQL DB in Binary Format
我在SQL Server中存储了一些MS word文档。当我想下载它们时,我先将它们保存为服务器上的文件然后用户可以下载它们,但我正在寻找一种不涉及将文件保存到服务器文件系统的方法...
答案 0 :(得分:2)
您需要一个实现IHttpHandler的自定义HttpHandler。请参阅MSDN中的IHttpHandler.ProcessRequest Method。设置适当的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; }
}
}