请求一个后端接口

返回一张图片(打印后发现是二进制流)

瞬间不开心了(为什么不能后端处理好再让前端调用呢)

不过丝毫不慌好吧

先说处理逻辑:首先要将获取到的数据转换,这边选择以blob形式进行转换

主要代码  responseType: 'blob' 

window.URL.createObjectURL

话不多说,直接上代码(声明一下:这是在vue中写的,原生js及其他框架注意修改)

HTML

  1. <button @click="onexh()">获取</button>
  2. <img :src="contimg" alt="假装有图" />
  3. <button @click="download()"><button>下载</button></a>

JavaScript

  1. data() {
  2. return{
  3. xboUrl:“url”, //接口地址
    contimg:"",
     filename:""
      }
    },
  1. methods: {
  2. onexh() {      //展示
  3. axios({
  4. url: this.xboUrl,
  5. method: "GET",
  6. params: this.params,
  7. responseType: "blob", //划重点了,这个很重要
  8. }).then((res) => {
  9. console.log(res); //打印返回结果
  10. let blob = new Blob([res.data], { type: "image/jpeg" });
  11. this.contimg = window.URL.createObjectURL(blob); //转换为blob格式
  12. console.log("转换后地址", this.contimg);
  13. this.filename = this.contimg.slice(50) //这里选择对名字进行一点小处理,也可以直接赋值
  14. });
  15. },
  16. }
至此,展示效果实现

什么?下载?

别急,上面按钮都写了怎么可能不写方法

  1. download(fileName = this.filename) { //this.filename就是下载文件的名字
  2. let link = document.createElement("a");    //生成一个a标签
  3. link.download = fileName || "defaultName";
  4. link.href = this.contimg;
  5. document.body.appendChild(link);
  6. link.click();
  7. // 移除
  8. document.body.removeChild(link);
  9. },

方法容易找到,其中一些小细节上最容易犯错误,比如在请求接口的时候

responseType: "blob",可以说是非常重要了
(小声BB)我就是忘了把这条写进去
 
爱心小贴士 : 冬天了,你有女朋友暖手了吗
 

接口返回图片,前端生成临时url实现展示、下载效果的更多相关文章

  1. .net core 接口返回图片并且进行压缩

    背景:  .net core 中默认已经取消可以直接访问图片,因为这样不安全. 导致我们上传的图片无法直接通过url访问. 解决方案:  一: 通过修改项目配置,使可以直接通过url访问.(方法略,可 ...

  2. Flask--第三个例子,写一个接口,该接口返回html前端页面,模板的使用

     将接口数据返回至html前端页面有两种方法 方法一: 1 @app.route('/index',methods=['get']) 2 def open_index(): 3 page=open(' ...

  3. php 人人商城 生成 临时微信二维码,并保存成海报图片 有效期一个月

    public function getPoster(){ global $_W; global $_GPC; $mm = pdo_fetch('select nickname,codetime fro ...

  4. js 根据url 下载图片 前端js 实现文件下载

    1.H5 download属性 function downFile(content, filename) { // 创建隐藏的可下载链接 var eleLink = document.createEl ...

  5. Java中处理接口返回base64编码的图片数据

    在做接口测试的时候,某些接口返回的content是一大段加密文字.这种情况下,有可能是返回的图片加密数据,需要将这些数据转换成图片进行保存查看. 例如: 这里,可以看到Content对应的键值开头有“ ...

  6. java通过url调用远程接口返回json数据

    java通过url调用远程接口返回json数据,有用户名和密码验证, 转自 https://blog.csdn.net/wanglong1990421/article/details/78815856 ...

  7. Nodejs koa2读取服务器图片返回给前端直接展示

    参考:https://blog.csdn.net/lihefei_coder/article/details/105435358 const fs = require('fs'); const pat ...

  8. qrcode.js的识别解析二维码图片和生成二维码图片

    qrcode只通过前端就能生成二维码和解析二维码图片, 首先要引入文件qrcode.js,下载地址为:http://static.runoob.com/download/qrcodejs-04f46c ...

  9. 前端生成分享海报兼容H5和小程序

    ### 移动端分享海报生成 最近做项目需求是生成商品分享海报,并且保存到手机中要兼容H5和小程序<br> 与后端同学沟通后,海报在前端生成最省性能和有较好的交互体验,先看做好的效果

随机推荐

  1. mysql通过logstash同步数据到es

    大小写问题很严重 input 1.statement:mysql的连接使用 jdk版本有强要求 2.jdbc_driver_library:jar包的版本有对应要求 3.jdbc_driver_cla ...

  2. 华为Awareness kit,您旅途路上的超智能管家

    前言 前段时间看了一部纪录片<中国游客在巴黎>,讲述了外国人眼中"中国式旅游":热衷景点打卡,沉迷拍照留念,无暇仔细欣赏:留足时间,买买买,不能枉此行.网友总结中国式旅 ...

  3. 前段之jQuery

    一.jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Ajax交 ...

  4. Android应用开发特色

    目录 Android应用开发特色 四大组件 Activity Service Broadcastreceiver Contentprovider 丰富的系统控件 Sqlite数据库 强大的多媒体 An ...

  5. 2021.7.27--Benelux Algorithm Programming Contest 2020 补提

    I Jigsaw 题目内容: 链接:https://ac.nowcoder.com/acm/contest/18454/I 来源:牛客网 You have found an old jigsaw pu ...

  6. Linux Manual

    man 命令用来访问存储在Linux系统上的手册页面.在想要查找的工具的名称前面输入man命 令,就可以找到那个工具相应的手册条目. 手册页不是唯一的参考资料.还有另一种叫作 info 页面的信息.可 ...

  7. 【UE4 调试】C++ 常见编译 warnnings/errors

    error LNK2019: unresolved external symbol "" referenced in function 描述 Link错误.无法解析的外部符号 解决 ...

  8. 短短 29 天,应对高峰 100W+ 访问,看浙大如何交出满分答卷

    疫情期间"停课不停教,停课不停学",线上开课第一天,浙江大学网上开课平台访问量即突破100 万次,访客数3万余人,最高峰达 1.1万人同时在线,发起课程直播2000余场,然而系统却 ...

  9. Java中的函数式编程(六)流Stream基础

    写在前面 如果说函数式接口和lambda表达式是Java中函数式编程的基石,那么stream就是在基石上的最富丽堂皇的大厦. 只有熟悉了stream,你才能说熟悉了Java 的函数式编程. 本文主要介 ...

  10. 好好编程BUAA_SE(组/团队) Scrum Meeting 博客汇总

    好好编程BUAA_SE(组/团队) Scrum Meeting 博客汇总 一.Scrum Meeting 1. Alpha Alpha阶段 第一次Scrum Meeting Alpha阶段 第二次Sc ...