當(dāng)前位置:
首頁(yè) >
vue中下载图片
發(fā)布時(shí)間:2025/3/16
24
豆豆
文章適用于下載字符流圖片
對(duì)于普通的圖片下載,我們一般用a標(biāo)簽就可以實(shí)現(xiàn),有時(shí)候我們需要下載從后端返回來(lái)的圖片,返回結(jié)果有可能是字符流。這個(gè)時(shí)候如果我們還是用a標(biāo)簽去實(shí)現(xiàn),就會(huì)發(fā)現(xiàn)只會(huì)發(fā)生路由跳轉(zhuǎn),并不能實(shí)現(xiàn)下載。
解決方法就是我們可以將圖片鏈接轉(zhuǎn)換成base64,再下載就可以了。
HTML部分
<div class="link-wrapper" @click="download">下載</div>js部分
getUrlBase64這個(gè)方法主要根據(jù)圖片的url返回一個(gè)base64編碼
getUrlBase64(url) {return new Promise(resolve => {let canvas = document.createElement('canvas')let ctx = canvas.getContext('2d')let img = new Image()img.crossOrigin = 'Anonymous' //允許跨域img.src = urlimg.onload = function() {canvas.height = 300canvas.width = 300ctx.drawImage(img, 0, 0, 300, 300)let dataURL = canvas.toDataURL('image/png')canvas = nullresolve(dataURL)}})},調(diào)用部分
download() {this.getUrlBase64(‘此處傳入圖片鏈接’).then(base64 => {let link = document.createElement('a')link.href = base64link.download = 'qrCode.png'link.click()})},?
?
總結(jié)
- 上一篇: 年薪35W+ 的程序员看过来!百万架构师
- 下一篇: NYOJ 658 字符串右移