假设我在 CDN(来自 Rackspace 的云文件)上有一个文件,以及一个包含该文件链接的静态 html 页面。有什么方法可以强制下载此文件(以防止它在浏览器中打开 - 例如 mp3)?
我们可以让我们的服务器读取该文件并将相应的标头设置为:
header("Content-Type: application/force-download")
但我们每月大约有 500 万次下载,所以我们宁愿让 CDN 来处理这个问题。
有任何想法吗?
There’s no way to do this in HTML or JavaScript. There is now! (Ish. See @BruceAldrige’s answer below.) https://stackoverflow.com/a/14802816/20578
超文本传输协议Content-Disposition
标头告诉浏览器下载文件,由服务器发送。您必须配置 CDN 以发送该标头以及您想要浏览器下载而不是显示的任何文件。
无奈的是,我完全不熟悉 Rackspace 的云文件服务,所以我不知道他们是否允许这样做,也不知道如何做到这一点。遗憾的是,刚刚发现 2009 年 12 月的一个页面表明没有想到:
云文件无法提供带有“Content-Disposition:附件”HTTP 标头的文件。因此,在任何其他服务中都能完美运行的下载链接可能会导致浏览器直接呈现文件。 Rackspace 工程师证实了这一点。 :-(
http://drupal.org/node/656714 http://drupal.org/node/656714
我知道您可以使用 Amazon 的 CloudFront 服务,因为它由 S3 支持(参见例如http://blog.cloudberrylab.com/2009/06/how-to-set-custom-http-headers-for.html http://blog.cloudberrylab.com/2009/06/how-to-set-custom-http-headers-for.html)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)