我正在寻找方法让浏览器以不同的名称下载文件.以下是我的一些想法,为什么他们不会工作,但您可能可以找到解决方法.
只是一个注释,我没有任何控制外部资源.我将无法更改标题或其他任何内容.我的服务是一个主要针对桌面用户的网站. Android和iOS解决方案不会那么有益.
下载属性
这种方法在Google Chrome和Firefox中工作了一段时间,但随后他们开始关注W3 HTML5 spec.外部资源需要发送Google Chrome和Firefox之前未检查的Content-Disposition的标题.
PHP代理下载
我知道,我可以让一个PHP脚本向外部资源发出请求,然后将其交给最终用户,同时更改头文件和名称以满足我的需要.问题是网站流量高,每个用户下载大约1-2GB的数据.我的服务器不能处理这种类型的流量,升级服务器可能会太贵了.
我正在考虑使用外部应用程序(可能是Chrome / Firefox扩展),可以在文件下载完成后重命名文件.但考虑到我的观众人数足够多是访问者的一次次,要求他们下载应用程序或扩展名是不大可能的.
Flash或Java嵌入式解决方案
我正在考虑使用将处理文件下载的Java或Flash嵌入式文件,但我对两个平台都不够了解.从我可以看出,Flash对用户的文件系统没有太多的控制权,所以这可能是一个问题. Java将能够完成这个任务,但我真的希望我不必使用Java,因为它通常是不安全的,需要大量的下载来安装它(与External Software的想法相同).
如果您有任何想法可以解决这个问题,他们将不胜感激.我不是在寻找任何代码,只是关于我将如何能够完成上述任务的想法.我要感谢大家的时间和专长.
解决方法
如果它恰好是亚马逊的S3,它允许您生成下载URL,并在下载时指定服务器响应中应该存在的Content-Disposition.在那里,您可以编辑浏览器在保存文件时应使用的文件名.
如果是另一项服务,请查看其文档,也许具有类似的功能.