在数据库中写二进制PDF

时间:2009-05-13 16:13:02

标签: c# sql pdf bytearray

好,

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

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

我使用第三方工具生成PDF,效果很好。

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

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

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

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

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

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

现在,唯一的问题是实际上将PDF写入网站并将其显示在网站上,我不知道如何做到这一点或从哪里开始。

3 个答案:

答案 0 :(得分:3)

        Response.ContentType = "application/pdf";
        byte[] bytes = YourBinaryContent;

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

答案 1 :(得分:2)

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

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

byte[] myarray = BusinessLayer.GetPDF(parameters)

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

看看是否适用于你。

答案 2 :(得分:1)

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