免责声明我知道Content-Disposition标头要发送回客户端以设置下载的文件名 - 但是我的问题比这更复杂
我有一个应用程序(RubyOnRails使用rails 3.1.3),它本质上是一个文档搜索/视图应用程序(搜索文档然后在浏览器中呈现它们)。这是使用iframe完成的。
<iframe src="<%= @frameURL %>" width="100%" height="100%">
@frameURL
是对Documents控制器的plugin
函数的调用。插件函数对我们的后端API进行RESTful调用以检索引用的文档,然后将文档内容发送回浏览器以在iframe内进行渲染。
这适用于JPEG,PDF,TXT等文档。但是,当浏览器不知道如何处理内容类型(如word文档 - 我们运行Mac OS-X) - 然后浏览器下载返回的文件为plugin.doc
&lt; - 请注意,这不会设置Content-Disposition标头。
由于我们希望在需要下载文件时对其进行适当命名,因此我们设置了Content-Disposition标头:
response.headers['Content-Disposition'] = "attachment; filename.extension"
现在文件被下载为filename.doc
- 但是,使用此标头集,甚至可以下载浏览器可以在内部呈现的JPEG等文件。
问题:
当我们没有设置Content-Disposition标头时,是否有人知道rails或浏览器的名称是plugin.extension
?
有没有办法设置Content-Disposition但是只有在浏览器无法呈现文档时才应用它 - 所以默认应该是浏览器处理它所能做的一切,作为后备,浏览器使用Content-Disposition内容,用于命名下载的文件。
谢谢!
答案 0 :(得分:1)