【问题标题】:Open PDF file in browser rather than downloading pdf file在浏览器中打开 PDF 文件而不是下载 pdf 文件
【发布时间】:2016-09-11 04:32:09
【问题描述】:

我希望允许用户打开或保存 PDF 文件,而不是 PDF 文件自动下载。

假设我有一个简单的锚标记

<a href="pdf/pdf-file1.pdf" > View PDF </a>

我尝试在自己的锚点中使用downloadtype="application/pdf",但它不起作用。

我可以强制使用文件后面的 C# 代码打开 PDF 文件,但我想避免是否有一种简单的基于 HTML 的方法,即使在 HTML 5 中也没有

【问题讨论】:

  • 除非您有一些非常、非常、非常好的理由,否则应该将 PDF 的处理和显示方式留给用户。如果在浏览器中显示文档很重要,您可以通过在服务器端呈现它来强制执行此操作。
  • 我不介意默认行为,但这是客户请求。只是想知道它是否可以仅使用 HTML 来完成。我也可以使用 HTTP 处理程序从后面的代码中做到这一点。

标签: c# html pdf download


【解决方案1】:

您自己托管此 pdf 文件吗?如果是这样,请尝试将target="_blank" 添加到锚标记:

<a href="pdf/pdf-file1.pdf" target="_blank"> View PDF </a>

否则,请尝试 iframe:

<iframe src="pdf/pdf-file1.pdf" 
style="width:600px; height:800px;" frameborder="0"></iframe>

此外,如果您从自己的后端发送此文件,请将 Content-Disposition 设置为在您的响应中内联:

Content-Type: application/pdf
Content-Disposition: inline; filename="pdf-file1.pdf"

【讨论】:

  • 是的,这个 pdf 文件在我之前尝试过 target="_blank" 的同一台服务器上,它也没有工作
  • 对于解决方案的最后一部分,我必须将其添加到 C# 代码中,或者更改我不想更改的 IIS 设置。如果可能的话,我想要一些简单的东西让它直接从锚标签中工作
  • 锚标签不可能达到 100% 的可靠性,因为浏览器决定了下载文件的显示方式。为获得最佳结果,您应该真正更改content-disposition 服务器端。
猜你喜欢
  • 2020-11-03
  • 1970-01-01
  • 2011-09-11
  • 1970-01-01
  • 2021-03-06
  • 2012-08-18
相关资源
最近更新 更多