使用javascript为用户提供图像下载

时间:2013-02-04 03:28:29

标签: javascript image download

假设我在网络上有一些网址图片。让我们说...... 网址是“http://hd.wallpaperswide.com/thumbs/abstract_crystal_structure-t2.jpg

现在我想当用户按下下载按钮时,他将下载图像。

我试过了..

window.location.href = Link;

但有时它只是在浏览器上打开图像.. 有时下载是按照预期提供的。

如何实现..

4 个答案:

答案 0 :(得分:1)

执行此操作的唯一方法是使用Content-Disposition标头,服务器端。

Content-Disposition: attachment; filename="somefile.jpg"

您无法使用JavaScript强制执行此行为。 (即使使用Content-Disposition标题,您也不能100%依赖此控件。支持因浏览器而异。)

答案 1 :(得分:1)

Assuming a HTML5/ES5 browser,您可以使用<a>元素的 download 属性。

  1. <a>上的 download 属性设置为您想要的文件名。
  2. href 设置为图像的位置。
  3. 模拟点击它。
  4. 如果您已经使用<a>作为下载按钮,则无需模拟点击,只需使用该元素即可。

    请查看我的回答here了解更多信息,请记住,由于您有直接链接,因此无需执行任何dataURI内容。

答案 2 :(得分:0)

如果您愿意依赖Flash,这个库可以解决问题。

https://github.com/dcneiner/Downloadify

答案 3 :(得分:0)

如果您愿意牺牲下载速度,可以创建一个充当代理的服务器端脚本:它会将文件下载到您的服务器,然后将其传递到客户端的浏览器Brad的答案中提到的适当的标题(Content-Disposition: attachment)。您可以改为链接到您自己服务器上的“网关”,而不是链接到文件本身。具体实现取决于您的基础结构和您选择使用的语言/库。

有许多反对这种方法的论据(责任方面,安全方面和绩效方面),除非你没有其他选择,否则我不会推荐它。