在ASP.net的浏览器中显示来自Oracle数据库的PDF

时间:2012-03-14 17:58:48

标签: c# asp.net oracle pdf

我有一个包含PDF文档的BLOB字段。我想检索该BLOB并在新的选项卡或窗口中显示PDF。我已经检索了BLOB但是无法显示它。我正在使用C#和ASP.net 2010.到目前为止,我的代码是:

byte[] blobBuffer = getPDFBlob(selectedOfferId);

if (blobBuffer != null)
{
    Response.ContentType = "application/pdf";
    //Response.AddHeader("Content-Type", "application/pdf");
    //Response.AddHeader("Content-Disposition", "inline");
    Response.BinaryWrite(blobBuffer);
    Response.End();
}

getPDFBlob是进入数据库并检索BLOB字段内容的例程。我错过了什么?

2 个答案:

答案 0 :(得分:0)

在设置Response.Clear();等之前,您应该致电ContentType

在致电Response.AddHeader("content-disposition", "attachment; filename=test.pdf");之前,请尝试拨打BinaryWrite

更新 - 根据评论:

根据您要实现的目标(下载与在浏览器中显示),您也可以在致电Response.AddHeader("content-disposition", "inline; filename=test.pdf");之前尝试拨打BinaryWrite

更新2:

您应该检查的另一点是blobBuffer的内容 - 将其写入本地文件并查看它是否实际上是有效的PDF ...

更新3:

致电BinaryWrite后,在致电End之前,请尝试拨打Response.Flush();

答案 1 :(得分:0)

尝试添加:

Response.AddHeader("content-disposition", "inline;filename=mypdf.pdf");