我正在编写一个从一组XML文件生成PDF文件的服务。 PDF正确生成。但是,每次我点击“查看PDF”链接时,浏览器都会要求用户下载PDF文件。
我需要PDF显示内联,就像任何常规HTML页面一样。我虽然编写了正确的代码,但必须缺少某些东西 - 浏览器一直要求用户下载。
这是当前的代码:
class PdfController < Controller
def generate
# stuff
send_data pdf_bytes, :disposition => 'inline', :type => 'application/pdf'
end
end
有什么想法吗?
答案 0 :(得分:3)
尝试完全删除Content-Disposition
标题。根据我的经验,Content-Disposition: attachment
工作得很好,但许多浏览器对任何其他值都有不一致的行为。如果要显示内联,最好删除标题并希望获得最佳效果。 IE似乎有这个标题最多的问题。 (惊喜,惊喜。)只要确保你仍在设置Content-Type: application/pdf
。
另一种选择是使用iframe
并将src
的{{1}}设置为您的PDF文件。几乎所有支持内联PDF查看的浏览器都能正确处理。缺点是你最终可能会显示一个空白iframe
,而不支持的浏览器可能只是简单地下载PDF就可以实现优雅的回退。