当前位置: 首页 > news >正文

vue.js如何根据后台返回来的图片url进行图片下载

原创/朱季谦

最近在做一个前端vue.js对接的功能模块时,需要实现一个下载图片的功能,后台返回来的是一串图片url,试了很多种方法,发现点击下载时出来的效果,都是跳到一个新的图片网页,后来经过一番琢磨,终于解决了这个问题:

这是后台返回来的json数据(防止泄露重要信息IP地址打码了):

 我在html里的引用是这样的:

<a @click="downCom" >下载执照<i class="icon-down"></i></a>

vue.js方法里的下载图片方法:

   downCom() {let that = this;this.$http.files().then(res => {let hreLocal="";hreLocal = res.data.data.url;this.downloadByBlob(hreLocal,"pic")});},

下面这个方法,可以直接拿去用,直接把你的图片url传给这个方法,就可以实现vue.js来下载图片了。

    downloadByBlob(url,name) {let image = new Image()image.setAttribute('crossOrigin', 'anonymous')image.src = urlimage.onload = () => {let canvas = document.createElement('canvas')canvas.width = image.widthcanvas.height = image.heightlet ctx = canvas.getContext('2d')ctx.drawImage(image, 0, 0, image.width, image.height)canvas.toBlob((blob) => {let url = URL.createObjectURL(blob)download(url,name)// 用完释放URL对象URL.revokeObjectURL(url)})}},
调用的download(url,name)方法:

 function download(href, name) {let eleLink = document.createElement('a')eleLink.download = nameeleLink.href = hrefeleLink.click()eleLink.remove()}

完成上面的代码后,即可实现图片下载,而不是图片浏览啦。

最后成功实现点击即可下载图片,效果图如下:

http://www.lryc.cn/news/249052.html

相关文章:

  • 获取WordPress分类链接
  • <Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 5》(9)
  • Anthropic推出Claude 2.1聊天机器人;使用AI工具写作:挑战与策略
  • 2023-11-30 LeetCode每日一题(确定两个字符串是否接近)
  • 进程间通信基础知识【Linux】——上篇
  • OpenSSH(CVE-2023-38408)OpenSsh9.5一键升级修复
  • 10.30 作业 C++
  • Python开发运维:PyMongo 连接操作 MongoDB
  • 【Github】本地管理github分支
  • Spring Boot 项目中读取 YAML 文件中的数组、集合和 HashMap
  • Python正则表达式:match()和search()函数全面解读
  • AIGC ChatGPT4总结Linux Shell命令集合
  • 力扣labuladong——一刷day61
  • nacos配置变更导致logback日志异常
  • 【spring(五)】SpringMvc总结 SSM整合流程
  • 1、windows10系统下Qt5.12.0与卸载
  • WebGL/threeJS面试题扫描与总结
  • Qt connect()方法Qt::ConnectionType
  • HIVE SQL时间函数
  • linux磁盘的LVM、交换分区以及文件系统
  • 【HDFS】ActiveNamenodeResolver#getNamespaces 方法调用点梳理
  • 算法—双指针
  • ​[Oracle]编写程序,键盘输入n,计算1+前n项之和。测试案例:输入:10 输出:22.47​
  • 【视觉SLAM十四讲学习笔记】第三讲——旋转向量和欧拉角
  • 【UGUI】制作用户注册UI界面
  • 【UE】透视效果
  • 前端下载文件或者图片方式,window.open或者a标签形式
  • webpack配置scss loader
  • k8s有状态部署mysql主从(local pv持久化)
  • 下载并安装anaconda和VScode,配置虚拟环境,并使用VScode运行代码