Web 文件下载和查看

Web 文件下载和查看

在浏览器中点击一个文件链接,会被浏览器直接打开或者下载。
其实浏览器的行为是可以人为控制的,最简单的方法是使用 HTML5 download Attribute

<!-- will download as "expenses.pdf" -->
<a href="/files/expenses.pdf" download="expenses.pdf">Download Your Expense Report</a>

这种方式虽然简单,但是兼容性不太好。查看http://caniuse.com/download,我们可以发现很多版本都不支持这个属性。

浏览器行为是由 HTTP Head 中的 Content-Disposition 来控制的,例如

Content-Disposition: attachment; filename="fname.txt"

它的意思是将该文件作为附件,并且下载的文件名是 fname.txt

如果使用 S3 下载文件,使用 AWSapi 可以生成下载的 url:

url = object.url_for(:read, response_content_disposition: "attachment; filename=\"#{filename}\"")

参考文档


上一篇
面向对象设计实践指南-Ruby语言描述 面向对象设计实践指南-Ruby语言描述
设计是保留可变性的艺术,而非达到完美性的行为。 编写出的代码应该具有如下几个特点: 透明性(Transportation): 在所更改的代码,以及在远处依赖于它的代码里,更改所产生的后果应该显而易见。 合理性(Reasonabl
2014-09-03
下一篇
Mac 更新 Emacs Mac 更新 Emacs
最近买了 hhkb 开始折腾 Emacs。 Mac 自带 Emacs,但是版本比较老是 Emacs22,Emacs24 是现在最新的,有很多新功能,比如原生支持显示行数。 升级参考 wikemacs.org: Installing Emac
2014-03-17