5

我正在编写一个从一组 XML 文件生成 PDF 文件的服务。PDF 正在正确生成。但是,每次我点击“查看 PDF”链接时,浏览器都会要求用户下载 PDF 文件。

我需要 PDF 以内联方式显示,就像任何常规 HTML 页面一样。我虽然我写的代码是对的,但一定缺少一些东西——浏览器一直要求用户下载。

这是当前代码:

class PdfController < Controller
  def generate
    # stuff
    send_data pdf_bytes, :disposition => 'inline', :type => 'application/pdf'
  end
end

有任何想法吗?

4

1 回答 1

4

尝试完全删除Content-Disposition标题。根据我的经验,Content-Disposition: attachment效果很好,但是许多浏览器对于任何其他值的行为都不一致。如果要显示内联,最好删除标题并希望最好。IE 似乎对这个标头有最多的问题。(惊喜,惊喜。)只要确保你还在设置Content-Type: application/pdf

另一种选择是使用iframe并将 的 设置srciframe您的 PDF 文件。几乎所有支持内联 PDF 查看的浏览器都能正确处理这个问题。不利的一面是,您最终可能会显示空白iframe,而不受支持的浏览器会优雅地回退到简单地下载 PDF。

于 2011-01-19T23:03:03.580 回答