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

本文关键字:Oracle 数据库 PDF ASP net 浏览器 显示 | 更新日期: 2023-09-27 18:27:43

我有一个包含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字段内容的例程。我错过了什么?

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

尝试添加:

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

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

在调用BinaryWrite之前,请尝试调用Response.AddHeader("content-disposition", "attachment; filename=test.pdf");

更新-根据评论:

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

更新2:

你应该检查的另一点是blobBuffer的内容——把它写到本地文件中,看看它是否真的是一个有效的PDF。。。

更新3:

在呼叫BinaryWrite之后和呼叫End之前,尝试呼叫Response.Flush();