首页 > 解决方案 > 为什么 pdf 文档下载而不是显示在嵌入/iframe 中?

问题描述

我们有一个内部网站,其中有一些指向网络服务器上托管的 pdf 文档的链接。如果我打开 Chrome Dev-Tools(F12),检查链接并添加一个嵌入相同的 pdf 文档,它会下载文件而不是显示它。我已经尝试过嵌入和 iframe,但我仍然遇到同样的问题。

原始代码:

<a id="id2239" href="http://example.com:8080/client/attachment/filename.pdf" class="act01">filename.pdf</a>

截屏: 在此处输入图像描述

我们想要工作的代码:

<a id="id2239" href="http://example.com:8080/client/attachment/filename.pdf" class="act01">filename.pdf</a>

<div class="fgh"><embed id="fgh" src="http://example.com:8080/client/attachment/filename.pdf" type="application/pdf" width="400" height="400"></div>

截屏:

在此处输入图像描述

如您所见,它实际上下载了文档,而不是在上面的屏幕截图中显示它。只显示一个空白。 在此处输入图像描述

适用于另一个文档的代码: 我刚刚在 google 上找到了一个 pdf 文档,并将其放入标签中,它可以工作。它显示嵌入中的文档,而不是下载文档。

<a id="id2239" href="http://example.com:8080/client/attachment/filename.pdf" class="act01">filename.pdf</a>

<div class="fgh"><embed id="fgh" src="http://infolab.stanford.edu/pub/papers/google.pdf" type="application/pdf" width="400" height="400"></div>

截屏:

在此处输入图像描述

问题:

  1. 为什么这两个例子不同?为什么下载的是内部文档,但页面中显示的是外部文档?
  2. 我如何使它也适用于我们的网络服务器上的文件?

编辑:

pdf 文档标题的屏幕截图。 在此处输入图像描述

标签: htmliframegoogle-chrome-devtoolswebserverembed

解决方案


这取决于响应标头中的内容类型。您可以检查您的网络服务器是否设置了正确的标头信息,例如 Content-Type: application/pdf。

“Chrome Dev-Tools(F12)” -> 网络选项卡,检查响应标头。


推荐阅读