在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字段内容的例程。我错过了什么?
尝试添加:
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();
。