您的位置:首页 > 其它

通过转成Blob文件下载base64图片(兼容IE)

2017-11-25 16:26 1061 查看
// ------------------------ base64 转 Blob ,并装到数组中 ---------------------------------------------
var imgInfo, // 图片信息
downloadImgArr=[]; // 装所有图片信息的数组
var blob_ = dataURLtoBlob(base64);

imgInfo = {
name: "图片名称", // 无后缀名
src: blob_
};
downloadImgArr.push(imgInfo);
// base64 转 Blob
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while (n--) {
u8arr
= bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });
}

// ------------------------ 下载 ---------------------------------------------

(function($) {
var methods = {
_download: function(options) {
var triggerDelay = (options && options.delay) || 100; // 触发延迟
var removeDelay = (options && options.removeDelay) || 1000;
if (options.source === "local") {
this.each(function(index, item) {

4000
methods._createLink(item, index * triggerDelay, removeDelay);
});
}
},

//download属性设置
_createLink: function(url, triggerDelay, removeDelay) {
if (window.navigator.msSaveOrOpenBlob) {   // if browser is IE
navigator.msSaveBlob(url.src, url.name+'.png');//filename文件名包括扩展名,下载路径为浏览器默认路径
} else {
var link = document.createElement("a");
link.setAttribute("href", window.URL.createObjectURL(url.src));
link.setAttribute("download", url.name+'.png');
document.body.appendChild(link);
link.click();
}
}
};
$.fn.multiDownload = function(options) {
methods._download.apply(this, arguments);
};
})(jQuery);
$(function() {
$(".downloadBtn").click(function() {
$(downloadImgArr).multiDownload({"source":"local"});
});


应用实例:

jtopo 实现调用saveImageInfo()方法直接下载图片,支持所有浏览器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐