重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
怎么在vue中利用base64对图片进行下载?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联服务项目包括富宁网站建设、富宁网站制作、富宁网页制作以及富宁网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,富宁网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到富宁省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!当我们处理图片下载功能的时候,如果本地的图片,那么是可以通过canvas获得图片的base64的,方法如下。但是如果图片的url存在跨域问题的话,下面的方法将行不通,这时候我们可以另辟蹊径,将后台的同学,将图片以base64的形式进行返回。
function getBase64(url){ //通过构造函数来创建的 img 实例,在赋予 src 值后就会立刻下载图片,相比 createElement() 创建 省去了 append(),也就避免了文档冗余和污染 var Img = new Image(), dataURL=''; Img.src=url; Img.onload=function(){ //要先确保图片完整获取到,这是个异步事件 var canvas = document.createElement("canvas"), //创建canvas元素 width=Img.width, //确保canvas的尺寸和图片一样 height=Img.height; canvas.width=width; canvas.height=height; canvas.getContext("2d").drawImage(Img,0,0,width,height); //将图片绘制到canvas中 dataURL=canvas.toDataURL('image/jpeg'); //转换图片为dataURL }; }
处理base64的时候有两点要注意,一个是对ie浏览器的处理,一个是对火狐浏览器的处理
1.由于后台返回的是纯base64,如果要完成图片的下载功能,必须加上一个前缀
2.采用这种方式可以很好的支持chrome、Firefox、opera、Safari,但是不支持ie,所以我们下面单独处理ie浏览器
1.修改代码如下
2.ok,ie的问题解决了,但是火狐的又不行了
1.结合上面两种检测方法,我们只要可以判断浏览器是火狐,然后单独处理就可以实现我们的兼容性了
关于怎么在vue中利用base64对图片进行下载问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。