C# PDF在浏览器上显示为文本
我正在尝试向用户显示数据库(字节[])中的PDF文件 我正在使用下面的代码呈现PDF。它是给我的PDF作为二进制文本如下所示。它不是在PDF应用程序中打开,而是将PDF呈现为文本C# PDF在浏览器上显示为文本,c#,asp.net,pdf,moss,C#,Asp.net,Pdf,Moss,我正在尝试向用户显示数据库(字节[])中的PDF文件 我正在使用下面的代码呈现PDF。它是给我的PDF作为二进制文本如下所示。它不是在PDF应用程序中打开,而是将PDF呈现为文本 Response.Buffer = true; Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); //Response.AddHeader(
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
//Response.AddHeader("Content-Length", fileToDownload.Length.ToString());
//Response.AddHeader("Content-Disposition", "inline; name=RemoteUserGuide.pdf");
Response.AppendHeader("content-length", fileToDownload.Length.ToString());
Response.ContentType = "application/pdf";
Response.BinaryWrite(fileToDownload);
Response.Flush();
////Response.Close();
Response.End();
更新:刚刚注意到,此应用程序页面在CHROME中正确呈现PDF,但在IE中仍然显示文本(服务器上没有要测试的FF3)。可能是浏览器的问题吧
有什么想法吗?
确保IIS(Internet信息服务)中.pdf扩展名的MIME类型设置为“application/pdf”。如果您确定浏览器可以查看pdf,则应使用
@PAGE ContentType=“application/pdf”
指令,而不是Response.ContentType=“application/pdf”代码>
您还应该使用Response.AddHeader(“内容处置”,“文件名=\”document.pdf\”)
对于设置文件名,正如其他人所说,尝试将MIME类型/标题设置为application/pdf,如果这不起作用,最后一件事就是关闭浏览器并重新打开同一页面,我以前在使用FPDF(PHP中的pdf生成库)时遇到过这个问题,它看起来像浏览器缓存页面(PHP)的MIME并将其永久保留,通过关闭浏览器并重新打开它,它将工作#1。损坏的adobe install会执行此操作。在目标(客户端)计算机上重新安装Adobe Reader
有时,Adobe安装程序会崩溃并执行此操作 您使用什么浏览器?请查看我的更新…谢谢。他正在手动设置内容类型。这与IIS添加到响应中的行为相同吗?我认为OP缺少文件名调用。尝试使用的文件名仍然相同。问题是PDF安装已损坏。重新安装后工作正常。谢谢由于我们人手不足,程序员在覆盖率较低的日子里负责服务台的工作。你得到了一个完整的画面,而不是挂在编程象牙塔!我完全同意,对于开发人员来说,帮助台将是非常好的经验。几周前,我接到了微软的支持电话,我对这些人的广博知识感到惊讶。它不能与任何训练或阅读书籍一起出现。它被称为“战壕中”。