【问题标题】:Write PDF from binary in database从数据库中的二进制文件写入 PDF
【发布时间】:2009-05-13 16:13:02
【问题描述】:

好的,

我有一个存储了 PDF 的 SQL 2005 数据库。该列使用图像类型。因此,当 PDF 获取存储时,它是一个 byte[] 数组。

所以这是困难的部分。我可以用它来存储数据,但我不确定如何将 byte[] 数组恢复为 PDF 格式并将其显示在网页上。

我正在使用第 3 部分工具来生成 PDF,效果很好。

我要生成byte[]数组的代码如下:

Doc document = new Doc();
byte[] myArray = document.GetData();

然后我将 byte[] 数组插入到数据库中。

当我从数据库中取回数组时,我会这样做:

public byte[] GetPDF(parameters)
{
    return DAL.GetPDF(parameters)
}

这会返回一个有效的 byte[] 数组。

现在,唯一的问题实际上是将 PDF 写入网站并将其显示在网站上,我不知道如何执行此操作或什至从哪里开始。

【问题讨论】:

  • 好的,看了2个答案后是正确的。我选择哪个作为正确答案?我是新手,不想冒犯任何人......
  • 这真的是你的选择。但我会选择对您最有效的代码和最有效的代码。
  • 好的,我做了研究,发现使用会正确处理对象。我喜欢 Jason 的答案简单易读,但我喜欢你的答案 (DaDa) 如何更好地调用这些方法。这是一个艰难的选择,但达达赢了,对不起杰森
  • :) 你做出了正确的选择,他的代码比我的例子更干净并且更好地处理对象。感谢您为我着想:D
  • 你是如此友好和善于沟通的人!欢迎来到 SOverflow Computer Girl(因为你是新手)。也向杰森致敬! (对不起我的英语)

标签: c# sql pdf bytearray


【解决方案1】:
        Response.ContentType = "application/pdf";
        byte[] bytes = YourBinaryContent;

        using (BinaryWriter writer = new BinaryWriter(context.Response.OutputStream))
        {
            writer.Write(bytes, 0, bytes.Length);
        }

【讨论】:

  • 这个对我不起作用...上下文抛出一个错误,是错字吗?
  • context 是传递给处理程序的 HttpContext ,用于显示您的 PDF 文件。无论如何你都可以删除它
【解决方案2】:

这很简单。事实上,我一个月前才这样做。我们必须将 PDF 存储在数据库中,然后在客户要求查看其文档时将其写出来。

您需要做的是在您的网页上添加以下代码:

byte[] myarray = BusinessLayer.GetPDF(parameters)

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

看看这是否适合你。

【讨论】:

    【解决方案3】:

    您需要将 Response.ContentType 设置为“application/pdf”,然后调用 Response.BinaryWrite 方法,传入字节数据。

    【讨论】:

      猜你喜欢
      • 2015-05-06
      • 2016-01-15
      • 2018-10-01
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      • 2013-06-23
      • 2014-09-29
      • 1970-01-01
      相关资源
      最近更新 更多