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