6

我有这种情况,我们将媒体文件存储在全球 CDN 上。我们的网络应用程序托管在它自己的服务器上,然后在需要媒体资产时从 CDN url 调用它们。最近我们有一个用户可以下载文件附件的页面,但是某些文件类型是在浏览器中打开而不是下载(例如 MP3)。解决这个问题的唯一方法是手动指定附加文件的 HTTP 响应,但我能做到这一点的唯一方法是将文件从 CDN 下载到我的服务器,然后将其反馈给用户,这违背了拥有它的目的在全球 CDN 上。相反,我想知道是否有一些客户端解决方案?

编辑:刚刚在某个地方找到了这个,虽然我不确定它是否能在所有浏览器中正常工作?

<body>
<script>
function downloadme(x){
myTempWindow = window.open(x,'','left=10000,screenX=10000');
myTempWindow.document.execCommand('SaveAs','null','download.pdf');
myTempWindow.close();
}
</script>

<a href=javascript:downloadme('/test.pdf');>Download this pdf</a>
</body>

重新编辑:哦,好吧,这个想法就这么多-> execCommand SaveAs 在 Firefox 中工作吗?

4

2 回答 2

2

您的 CDN 是否允许您指定 HTTP 标头?例如,Amazon cloudfront 就是这样做的。

于 2010-09-14T17:55:04.550 回答
1

我找到了一个对我有用的简单解决方案。将 URL 参数添加到文件名。这将诱使浏览器绕过它内置的文件映射。例如,而不是http://mydomain.com/file.pdf,将您的客户端链接设置为指向http://mydomain.com/file.pdf?(加了一个问号)

于 2014-02-20T19:26:15.100 回答