Chrome不显示asp.net页面中的PDF

Chrome不显示asp.net页面中的PDF,.net,google-chrome,pdf,.net,Google Chrome,Pdf,.aspx页面中有一个.pdf文件,如下所示:。Chrome只显示一个“正在加载”的图像,并挂起而不显示pdf(Chrome pdf viewer和adobe插件都不工作)。其他浏览器打开pdf。有什么想法吗?我也有这个问题,经过几次研究,我终于解决了 我发现HTTP响应头应该有以下实体头: 内容长度:文件大小 如果不指定此标头,web服务器将放置默认值: 内容长度:分块 我不知道Google Chrome为什么会有这个问题,因为正如你所说的,在IE或Firefox等其他浏览器中,他们正确地呈现

.aspx页面中有一个.pdf文件,如下所示:
。Chrome只显示一个“正在加载”的图像,并挂起而不显示pdf(Chrome pdf viewer和adobe插件都不工作)。其他浏览器打开pdf。有什么想法吗?

我也有这个问题,经过几次研究,我终于解决了

我发现
HTTP
响应头应该有以下实体头:

内容长度:文件大小

如果不指定此标头,web服务器将放置默认值:

内容长度:分块

我不知道Google Chrome为什么会有这个问题,因为正如你所说的,在IE或Firefox等其他浏览器中,他们正确地呈现/打开PDF文件

下面是我用来解决这个问题的代码。它在我的情况下起了作用,现在谷歌浏览器正在显示我的网络应用程序的PDF文件

    System.IO.FileInfo fileInfo;
    fileInfo = My.Computer.FileSystem.GetFileInfo(fullPathToFile);
    Response.AddHeader("Content-Length", fileInfo.Length.ToString());
我希望我曾经帮助过你

以下是一些我觉得有用的参考资料:


非常感谢,我也遇到了同样的问题,这就是解决方案。我使用的是报表查看器,但我需要自动以pdf格式显示它,而且它工作正常,但当我使用Chrome时,它也有同样的问题,当我想保存文件时,它是以扩展名.ASPX保存的,而不是.pdf

我与解决方案共享我的代码:

                string deviceInfo = "";
                string[] streams = null;
                string mimeType = null;
                string encoding = null;
                string fileNameExtension = null;
                Warning[] war = null;
                Byte[] bytes = this.ReportViewer.LocalReport.Render("PDF", deviceInfo, out mimeType, out encoding, out fileNameExtension, out streams, out war);
                System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes);
                Response.Clear();
                Response.ContentType = "Application/pdf";
                Response.AddHeader("Content-Length", bytes.Length.ToString());
                Response.AddHeader("Content-disposition", "inline; filename= NombreReporte");
                Response.BinaryWrite(ms.ToArray());
                Response.Flush();
                Response.End(); 

如果您在Firefox中显示PDF时也遇到问题,我发现:

“您需要指定内容类型,以便浏览器知道什么文件 它正在下载/显示内联…如下所示:

这对我很有用,我也希望能帮助你

资料来源:

     Response.ContentType = "application/pdf"
     Response.AddHeader("Content-Disposition", "inline;filename=YourFileName.pdf")