vue3 后台返回的接口数据,下载图片到本地

vue3 后台返回的接口数据,下载图片到本地




<el-table>
 <el-table-column align="left" label="操作" min-width="240">
     <template #default="scope">
        <el-button icon="edit" type="primary" link @click="editApiFunc1(scope.row)">编辑</el-button>
        <el-button icon="delete" type="primary" link @click="deleteApiFunc1(scope.row)">删除</el-button>
        <el-button id="dataTocopy" icon="DocumentCopy" type="primary" link @click="copyApiFunc1(scope.row)">一键复制</el-button>
        <el-button id="uploadimage" icon="Download" type="primary" link @click="uploadimage1(scope.row)">下载原图</el-button>
     </template>
  </el-table-column>
</el-table>


<script setup>
import {
    ref } from 'vue'
// 下载原图
const uploadimage1 = (row) => {
   
  console.log(row, '点击当前行的数据')
  console.log(row.init_images, '后端返回的图片')
  //下载图片地址和图片名
  let image = new Image()
  // 解决跨域 Canvas 污染问题
  image.setAttribute('crossOrigin', 'anonymous')
  let names = 'image' + row.init_images.split('/').pop()
  console.log(names, 'names')
  image.onload = function () {
   
    let canvas = document.createElement('canvas')
    canvas.width = image.width
    canvas.height = image.height
    let context = canvas.getContext('2d')
    context.drawImage(image, 0, 0, image.width, image.height)
    let url = canvas.toDataURL('image/png') //得到图片的base64编码数据
    let a = document.createElement('a') // 生成一个a元素
    let event = new MouseEvent('click') // 创建一个单击事件
    a.download = names || 'photo' // 设置图片名称
    a.href = url // 将生成的URL设置为a.href属性
    a.dispatchEvent(event) // 触发a的单击事件
  }
  image.src = row.init_images
}
</script>

效果:
在这里插入图片描述

在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2023-12-14 12:06:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-14 12:06:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-14 12:06:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-14 12:06:03       20 阅读

热门阅读

  1. uniapp app 实现自适应宽度 input

    2023-12-14 12:06:03       38 阅读
  2. sqlmap

    sqlmap

    2023-12-14 12:06:03      40 阅读
  3. uniapp todo list

    2023-12-14 12:06:03       45 阅读
  4. jvm基础知识总结

    2023-12-14 12:06:03       38 阅读
  5. Tomcat

    Tomcat

    2023-12-14 12:06:03      36 阅读
  6. 寻回初心:当初为什么学习计算机?

    2023-12-14 12:06:03       42 阅读
  7. SQL 算术运算符

    2023-12-14 12:06:03       41 阅读
  8. 36.@Import可以有几种用法?

    2023-12-14 12:06:03       58 阅读
  9. squid SSL https

    2023-12-14 12:06:03       30 阅读
  10. css做一条很细的分割线

    2023-12-14 12:06:03       43 阅读
  11. celery/schedules.py源码精读

    2023-12-14 12:06:03       38 阅读