美文网首页
在vue中下载图片

在vue中下载图片

作者: rithe | 来源:发表于2019-05-23 13:47 被阅读0次

——文章适用于下载字符流图片

对于普通的图片下载,我们一般用a标签就可以实现,有时候我们需要下载从后端返回来的图片,返回结果有可能是字符流。这个时候如果我们还是用a标签去实现,就会发现只会发生路由跳转,并不能实现下载。
解决方法就是我们可以将图片链接转换成base64,再下载就可以了。

HTML部分
<div  class="link-wrapper" @click="download">下载</div>
js部分

getUrlBase64这个方法主要根据图片的url返回一个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 = url
        img.onload = function() {
          canvas.height = 300
          canvas.width = 300
          ctx.drawImage(img, 0, 0, 300, 300)
          let dataURL = canvas.toDataURL('image/png')
          canvas = null
          resolve(dataURL)
        }
      })
    },

调用部分

download() {
      this.getUrlBase64(‘此处传入图片链接’).then(base64 => {
        let link = document.createElement('a')
        link.href = base64
        link.download = 'qrCode.png'
        link.click()
      })
    },

相关文章

  • Vue下载图片

    vue下载图片(根据链接下载)

  • 在vue中下载图片

    ——文章适用于下载字符流图片 对于普通的图片下载,我们一般用a标签就可以实现,有时候我们需要下载从后端返回来的图片...

  • Vue-lazyload 的使用

    Vue 项目使用 Vue-lazyload 做图片懒加载。 下载 下载 Vue-lazyload 的包NPM包 引...

  • Vue-lazyload 的使用

    Vue 项目使用 Vue-lazyload 做图片懒加载。 下载 下载 Vue-lazyload 的包NPM包[h...

  • Vue-img-preload

    vue-img-preload 预加载页面上的图片资源,提高用户体验 使用方法 浏览器中 下载vue-img-pr...

  • vue+element+vue-cropper实现图片裁剪功能

    vue+element+vue-cropper实现图片裁剪功能 1、下载插件:npm install --save...

  • vue - 生成二维码并下载

    1、npm命令下载qrcode 2、vue引入 3、vue引入 4、在data中定义 5、在methods中

  • vue 批量下载图片

  • vue 下载图片路径

    当下载图片路径,使用的是后台返回的路径且用的是ip访问时,常规的图片下载方法会当做图片预览处理。解决方案是,把图片...

  • SDWebImage 源码浅析

    图片下载     在SDWebImage中,图片的下载是由SDWebImageDownloader完成的。SDWe...

网友评论

      本文标题:在vue中下载图片

      本文链接:https://www.haomeiwen.com/subject/lgmvzqtx.html