vue 通过base64实现图片下载功能
1.使用场景
当我们处理图片下载功能的时候,如果本地的图片,那么是可以通过canvas获得图片的base64的,方法如下。但是如果图片的url存在跨域问题的话,下面的方法将行不通,这时候我们可以另辟蹊径,将后台的同学,将图片以base64的形式进行返回。
functiongetBase64(url){ //通过构造函数来创建的img实例,在赋予src值后就会立刻下载图片,相比createElement()创建省去了append(),也就避免了文档冗余和污染 varImg=newImage(), dataURL=''; Img.src=url; Img.onload=function(){//要先确保图片完整获取到,这是个异步事件 varcanvas=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 }; }
2.处理base64,进行下载
处理base64的时候有两点要注意,一个是对ie浏览器的处理,一个是对火狐浏览器的处理
2-1.我们首先直接处理base64(基于vue)
1.由于后台返回的是纯base64,如果要完成图片的下载功能,必须加上一个前缀
2.采用这种方式可以很好的支持chrome、Firefox、opera、Safari,但是不支持ie,所以我们下面单独处理ie浏览器
2-2.处理ie浏览器
1.修改代码如下
2.ok,ie的问题解决了,但是火狐的又不行了
2-3.兼容方法
1.结合上面两种检测方法,我们只要可以判断浏览器是火狐,然后单独处理就可以实现我们的兼容性了
以上就是vue通过base64实现图片下载功能的详细内容,更多关于vue图片下载的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。