在浏览器中打开PDF而不是下载它

时间:2015-12-29 17:36:16

标签: asp.net pdf c1-cms

将PDF上传到媒体档案后,我试图从网站上的页面链接到它。

在编辑内容时,我使用超链接工具,然后通过URL输入框选择我想要链接的PDF。

Plezi

保存并发布内容后,单击该链接会下载PDF,但我没有看到任何明显的方法可以使用当前的Media ID Composite提供的功能在浏览器中进行查看。渲染时,我们得到这个:

<a href="/media/64d5b13e-07f2-402f-9b1a-dcfd75d977da/F-KbnQ/CompositeDocumentation.pdf" target="_blank">pdf</a>

有没有办法可以在不使用媒体ID的情况下引用PDF而只是使用文件名?

这是请求/响应标头信息: enter image description here

在阅读了PauliØsterø所说的内容之后,我理解了这个问题,但我仍然无法想到解决方案。

我可以通过开发人员工具将?download = false添加到href网址,以便在浏览器中查看PDF。但是当我尝试通过Composite将?download = false添加到href时,它不会生效,我得到控制台输出:“资源被解释为Document但是使用MIME类型application / pdf传输:”enter image description here“ 。“

以下是Pauli要求的网络跟踪。在图像中,我在源视图中包含了我添加的位?download = false到URL,以防万一可能有另一种方法来添加它。

http://c1.wittenauers.com/media/4afb7bc8-f703-469d-a9b2-a524d8f93dcb/ryc7iw/CompositeDocumentation.PDF

修改:页面的网址和标题。

以下是包含该链接的页面的链接: enter image description here

以下是包含链接的页面的标题: http://c1.wittenauers.com/cafe/test

2 个答案:

答案 0 :(得分:3)

扩展Pauli的答案,您可以将以下代码段添加到页面模板中,以将“?download = false”自动添加到所有pdf链接。

$("a").each(function () {
    if (this.href.includes(".pdf")) {
        this.href = this.href + "?download=false";
    }
})

答案 1 :(得分:1)

根据您的体验,在我看来,Composite已经将您上传的文件的MIME类型弄错了,并且因此没有正确地告诉浏览器该文件是pdf,并且浏览器不知道是什么与它有关。

  1. 尝试删除该文件并重新上传。
  2. 尝试添加?download = false并将href的结尾添加到文件中。你有疑问。需要进入内容编辑器的源模式。
  3. 源代码中的

    This is the exact line负责此行为,逻辑如下

    • 如果没有名为 download 的查询字符串,则附件由Mime类型确定。只有png,gif和jpeg将以内联方式显示,其余部分将显示为附件。
    • 如果存在名为 download 的查询字符串,其值为 false ,则它将覆盖Mime Type检查并始终强制Content-Disposition为内联。

    我在这里做了一个快速测试,以表明行为是预期的。至少在Windows 8的Chrome浏览器中