在浏览器中打开 PDF 而不是下载它
Open PDF in browser instead of downloading it
将 PDF 上传到媒体存档后,我正尝试从站点上的页面link它。
在编辑内容时,我使用 hyperlink 工具,然后 select 通过 URL 输入框 link 我想要的 PDF。
保存并发布内容后,单击 link 下载 PDF,我没有看到任何明显的方法可以在浏览器中使用当前的 Media ID Composite 提供 view-able .渲染后,我们得到:
<a href="/media/64d5b13e-07f2-402f-9b1a-dcfd75d977da/F-KbnQ/CompositeDocumentation.pdf" target="_blank">pdf</a>
有没有一种方法可以在不使用媒体 ID 而只使用文件名的情况下引用 PDF?
这里是 Request/Response header 信息:
看了 Pauli Østerø 说的,明白了问题,但还是想不出解决办法。
我可以通过开发人员工具将 ?download=false 添加到 href URL 来在浏览器中查看 PDF。但是,当我尝试通过 Composite 添加 ?download=false 到 href 时,它没有生效,我得到了控制台输出:"Resource interpreted as Document but transferred with MIME type application/pdf: "http://c1.wittenauers.com/media/4afb7bc8-f703-469d-a9b2-a524d8f93dcb/ryc7iw/CompositeDocumentation.PDF"."
这是 Pauli 要求的网络跟踪。在图片中,我在源代码视图中添加了 ?download=false 到 URL 的位,以防万一可能有另一种方式来添加它。
编辑:URL 和 header 页面。
这是包含 link 的页面的 link:
http://c1.wittenauers.com/cafe/test
这是包含 link 的页面的 header:
根据您的经历,在我看来 Composite 将您上传文件的 MIME 类型弄错了,因此没有正确地告诉浏览器该文件是 pdf,而浏览器没有知道如何处理它。
- 尝试删除文件并重新上传。
- 尝试将 ?download=false 和 href 的末尾添加到文件中。你很可能。需要进入内容编辑器的源代码模式。
This is the exact line in the Source Code which is responsible to this behavior, 逻辑如下
- 如果没有名为 download 的查询字符串,则附件由 Mime 类型决定。只有 png、gif 和 jpeg 将内嵌显示,其余的将显示为附件。
- 如果有一个名为 download 且值为 false 的查询字符串,它将覆盖 Mime 类型检查并始终强制 Content-Disposition 内联。
我在这里进行了快速测试以表明该行为是预期的。至少在我的 Chrome 浏览器中 Windows 8
扩展 Pauli 的回答,您可以将以下代码片段添加到您的页面模板以自动将“?download=false”添加到所有 pdf 链接。
$("a").each(function () {
if (this.href.includes(".pdf")) {
this.href = this.href + "?download=false";
}
})
将 PDF 上传到媒体存档后,我正尝试从站点上的页面link它。
在编辑内容时,我使用 hyperlink 工具,然后 select 通过 URL 输入框 link 我想要的 PDF。
保存并发布内容后,单击 link 下载 PDF,我没有看到任何明显的方法可以在浏览器中使用当前的 Media ID Composite 提供 view-able .渲染后,我们得到:
<a href="/media/64d5b13e-07f2-402f-9b1a-dcfd75d977da/F-KbnQ/CompositeDocumentation.pdf" target="_blank">pdf</a>
有没有一种方法可以在不使用媒体 ID 而只使用文件名的情况下引用 PDF?
这里是 Request/Response header 信息:
看了 Pauli Østerø 说的,明白了问题,但还是想不出解决办法。
我可以通过开发人员工具将 ?download=false 添加到 href URL 来在浏览器中查看 PDF。但是,当我尝试通过 Composite 添加 ?download=false 到 href 时,它没有生效,我得到了控制台输出:"Resource interpreted as Document but transferred with MIME type application/pdf: "http://c1.wittenauers.com/media/4afb7bc8-f703-469d-a9b2-a524d8f93dcb/ryc7iw/CompositeDocumentation.PDF"."
这是 Pauli 要求的网络跟踪。在图片中,我在源代码视图中添加了 ?download=false 到 URL 的位,以防万一可能有另一种方式来添加它。
编辑:URL 和 header 页面。
这是包含 link 的页面的 link: http://c1.wittenauers.com/cafe/test
这是包含 link 的页面的 header:
根据您的经历,在我看来 Composite 将您上传文件的 MIME 类型弄错了,因此没有正确地告诉浏览器该文件是 pdf,而浏览器没有知道如何处理它。
- 尝试删除文件并重新上传。
- 尝试将 ?download=false 和 href 的末尾添加到文件中。你很可能。需要进入内容编辑器的源代码模式。
This is the exact line in the Source Code which is responsible to this behavior, 逻辑如下
- 如果没有名为 download 的查询字符串,则附件由 Mime 类型决定。只有 png、gif 和 jpeg 将内嵌显示,其余的将显示为附件。
- 如果有一个名为 download 且值为 false 的查询字符串,它将覆盖 Mime 类型检查并始终强制 Content-Disposition 内联。
我在这里进行了快速测试以表明该行为是预期的。至少在我的 Chrome 浏览器中 Windows 8
扩展 Pauli 的回答,您可以将以下代码片段添加到您的页面模板以自动将“?download=false”添加到所有 pdf 链接。
$("a").each(function () {
if (this.href.includes(".pdf")) {
this.href = this.href + "?download=false";
}
})