javascript – 下载外部资源 – 重命名文件

前端之家收集整理的这篇文章主要介绍了javascript – 下载外部资源 – 重命名文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个网站,提示用户从外部资源下载文件.由于外部文件名被散列,用户下载多个文件,用户很难知道他们下载哪个文件达到了哪些资源.例如,fdae442dafe42.zip的文件名可以是production-resources.zip.

我正在寻找方法让浏览器以不同的名称下载文件.以下是我的一些想法,为什么他们不会工作,但您可能可以找到解决方法.

只是一个注释,我没有任何控制外部资源.我将无法更改标题或其他任何内容.我的服务是一个主要针对桌面用户的网站. 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.在那里,您可以编辑浏览器在保存文件时应使用的文件名.

如果是另一项服务,请查看其文档,也许具有类似的功能.

猜你在找的JavaScript相关文章