通过转成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()方法直接下载图片,支持所有浏览器
相关文章推荐
- IE下通过response输出流的方式,输出图片等文件信息到IE,图片显示不了,文件下载不了的问题。
- Extjs上传图片IE提示下载json文件的解决方案
- html Demo工具类:网页使用ie另存为htm文件时,css样式文件的图片路径不对,进行修改,并下载图片
- 通过HttpServletResponse对象,实现图片的流方式显示和文件的流方式下载
- file 标签上传文件,直接样式太难看!隐藏它,通过别的按钮触发它,又会有IE兼容问题。
- 用于显示ORACLE_BLOB存储的图片、flash文件的JSP文件,用于直接下载文件的JSP
- jquery 通过flash多文件上传 实现IE和firefox兼容 java版
- ThinkPHP + jquery easyui form 提交在IE兼容模式下变文件下载的解决办法
- 动态生成二维码图片后通过js(JavaScript)或jq实现网页图片转base64格式下载
- 不经过临时文件,直接从BLOB字段,下载数据显示图片!
- 通过将图片文件转换成Base64编码实现ajax提交图片
- js 下载Base64格式数据图片(兼容主流浏览器)
- java oracle blob 存图片(通过base64)
- 上传时获取文件的完整路径图片预览的js代码(兼容Firfox和IE)
- 通过Web Services上传和下载图片文件
- java版 jquery uploadify 通过Flash实现多文件上传 IE 和FireFox 兼容
- POWERBUILDER -- PB通过URL下载局域网或者互联网上的图片或者文件
- 如何用JAVA将二进制文件转换成BASE64格式保存到MySQL的Blob字段里并读出下载
- java 下载文件 兼容 ie 火狐 google 浏览器 ,解决下载文件乱码问题
- javaweb下载中文名文件兼容IE和火狐