使用javascript为用户提供图像下载
Providing user a image download with javascript
假设我有一些网络图像的url。比方说。。。url为"http://hd.wallpaperswide.com/thumbs/abstract_crystal_structure-t2.jpg"
现在我想当用户按下下载按钮时,他会下载图像。
我试过了。。
window.location.href = Link;
但有时它只是在浏览器上打开图像。。有时会按预期提供下载。
如何实现。。
假设使用HTML5/ES5浏览器,则可以使用<a>
元素的下载属性。
- 将
<a>
上的下载属性设置为所需的文件名 - 将href设置为图像的位置
- 模拟点击它
如果您已经使用<a>
作为下载按钮,则不必模拟点击,只需使用该元素即可。
请在此处查看我的答案了解更多信息,记住您不需要做任何dataURI的事情,因为您有直接链接。
实现这一点的唯一方法是使用服务器端的Content-Disposition
标头。
Content-Disposition: attachment; filename="somefile.jpg"
您不能使用JavaScript强制执行此行为。(即使使用Content-Disposition
标头,您也不能100%依赖此控件。不同浏览器的支持也不同。)
如果你愿意依赖Flash,这个库可以解决这个问题。
https://github.com/dcneiner/Downloadify
如果你愿意牺牲下载速度,你可以创建一个充当代理的服务器端脚本:它会将文件下载到你的服务器,然后将其传递到客户端的浏览器,并带有Brad的回答中提到的适当的头(Content-Disposition: attachment
)。您将链接到自己服务器上的"网关",而不是链接到文件本身。具体的实现将取决于您的基础设施和您选择使用的语言/库。
有很多反对这种方法的论点(从责任角度、从安全角度和从性能角度),除非你别无选择,否则我不建议你这样做。
相关文章:
- 如何在Edge中下载图像/png数据URI
- 将SVG下载为PNG图像
- 将图像下载为数据url时出错
- node.js从http请求列表中将图像下载到服务器
- 在阵列中预加载图像(并等待图像下载)
- 如何以编程方式将图像下载到iPad
- 异步:1. 发布网址和 2.图像下载(从给定的 URL)
- 强制图像下载 - 缺少文件扩展名
- 创建图像下载按钮支持所有浏览器
- 强制将远程托管的图像下载到浏览器
- 使用Google Analytics跟踪图像下载
- 单击图像下载链接
- Wordpress的图像下载按钮
- 在页面上的其他几个图像下载完成后,HTML视频开始下载
- 如何获得图像下载时,用户点击
- 更改图像的src属性是否会阻止图像下载?
- 使用javascript为用户提供图像下载
- 保护图像下载理论
- 如何将画布图像下载位置更改为用户特定位置
- 如何在HTML中为移动页面创建图像下载链接?