为什么不在internet explorer中单独的标签页中显示pdf文件视图呢?

本文关键字:文件 显示 pdf 视图 标签 internet explorer 单独 为什么不 | 更新日期: 2023-09-27 18:06:50

我有一个显示pdf文件的函数。我用的是最新的ie浏览器。我试着在两台电脑上做。在一个浏览器中,它要求通过pdf阅读器打开,而另一个浏览器打开选项卡并显示一个空页面。我试过很多在互联网上找到的代码,甚至在stackoverflow。但一切都如我所愿。在这里我添加了我的代码。请看一看。

链接按钮点击事件

protected void pdfViewLOP_Click(object sender, EventArgs e)
{
        Response.Write(string.Format("<script>window.open('{0}','_blank');</script>", "viewPDF.aspx"));
}       

新页面中应该显示PDF的代码

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
         string name = Session["name"].ToString();
         string FilePath = Server.MapPath("~/filesPDF/" + name);
         WebClient client = new WebClient();
         Byte[] buffer = client.DownloadData(FilePath);
         if (buffer != null)
         {
              Response.Clear();
              Response.ContentType = "application/pdf";
              Response.AddHeader("content-length", buffer.Length.ToString());
              Response.BinaryWrite(buffer);
         }
    }
    catch (Exception ex)
    {
        WebMsgBox.Show(ex.Message);
    }
}

为什么不在internet explorer中单独的标签页中显示pdf文件视图呢?

这可能是由于客户端机器的设置,特别是Adobe首选项。

在使用web浏览器时更改默认的PDF打开行为:

选择编辑→偏好

从左侧的列表中选择Internet类别

若要在浏览器中显示PDF,请选中"在浏览器中显示"

若要在Acrobat中直接从网页打开pdf文件,请取消选中"在浏览器中显示:

参见这篇文章和这篇文章。

还要注意:要在浏览器中显示PDF,您的缓存控制头必须允许浏览器创建PDF的临时副本。如果你设置缓存提示来防止缓存(例如,如果你的应用程序包含敏感页面),你最好让用户下载PDF并离线查看。