目的
由于chrome会将图片链接自动打开,无法实现下载图片的功能(a标签的download属性只能针对同源的图片),所以想将图片地址转换为文件流,这样浏览器应该会将其下载。
怎么实现呢?
给定这个图片地址,https://cdn.segmentfault.com/v-5f0a9217/global/img/logo-b.svg
,怎么将其转换为文件流并让浏览器下载呢?
由于chrome会将图片链接自动打开,无法实现下载图片的功能(a标签的download属性只能针对同源的图片),所以想将图片地址转换为文件流,这样浏览器应该会将其下载。
给定这个图片地址,https://cdn.segmentfault.com/v-5f0a9217/global/img/logo-b.svg
,怎么将其转换为文件流并让浏览器下载呢?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
纯客户端无法实现。
要么服务端提供
Content-Disposition: Attachment
的方式来支持下载。要么服务端提供跨域支持,你 AJAX 请求下来当 Blob 读,转成 DataURL 或 BlobURL 下载好了。