浏览器中js怎么将图片下载而不是直接打开

网上找了好多方法都是不能用的,经过试验在Chrome中都是直接打开。

经过自己的摸索,找到了一套能用的解决方案

var database = "data:image/jpg;base64," + data.data;
let aLink = document.createElement('a');
let blob = this.base64ToBlob(database ); //new Blob([content]);
let evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true);//initEvent 不加后两个参数在FF下会报错  事件类型,是否冒泡,是否阻止浏览器的默认行为
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
aLink.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));//兼容火狐

这种方式需要让后台给一个base64的字符串。

base64前台显示图片的方法

$("#image").attr("src", "data:image/jpg;base64," + data.data);

 

posted @ 2020-04-30 15:27  何以平天下  阅读(3219)  评论(0编辑  收藏  举报