字节从SQL varbinary提供PDF

时间:2009-06-23 02:52:45

标签: c# pdf byte serving

我想通过允许用户一次下载页面来利用pdf的网络优化。

pdfs配置为快速Web视图。 我从sql server 2008提供pdf。 c#.net 3.5 Web应用程序直到linq to SQL将文件从数据库加载到二进制数组中。 该文件在IE中的客户端上的PDF阅读器插件中打开。

非常感谢任何正确方向的帮助或推动。

谢谢

2 个答案:

答案 0 :(得分:1)

如果您只想将PDF发送到客户端,请使用以下代码创建一个aspx文件:

protected void Page_Load(object sender, EventArgs e)
{
  byte[] pdfdata = GetMyPdfDataSomehow();

  Response.Clear();
  Response.ContentType = "application/pdf";
  Response.BinaryWrite(pdfdata);

  if (NoCaching)
  {
    Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
  }
  else
  {
    Response.Cache.SetExpires(DateTime.Now.AddDays(7));
    Response.Cache.SetCacheability(HttpCacheability.Public);
    Response.Cache.SetValidUntilExpires(true);
  }
  Response.End();
}

但是,如果您想知道如何逐页拆分PDF文件,那么您需要一些PDF库。

答案 1 :(得分:0)

根据Chris的回复,返回整个PDF只是在http响应中返回二进制文件的情况。

对于一次性页面处理,我建议使用Fiddler2Wireshark之类的内容来查看http流量。请求上可能有一些自定义的http标头,有点像通过字节范围标头的“恢复下载”支持。

您需要观察一个有效的逐页示例,并查看客户端和服务器发送的内容。