首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >我攻克的技术难题:前端获取后端图片

我攻克的技术难题:前端获取后端图片

原创
作者头像
用户10637692
发布于 2024-01-24 14:41:21
发布于 2024-01-24 14:41:21
49801
代码可运行
举报
文章被收录于专栏:前端前端
运行总次数:1
代码可运行

​在完成项目的验证码功能时,需要从后端获取验证码图片。前后端都是第一次做验证码,不清楚需要如何操作并且没有沟通好,导致在获取验证码图片这事上花费了很多的时间。终于!!!今天顺利完成了任务,现将前端获取后端图片这个过程总结一下,希望能给需要的人一些帮助,也希望有大佬能指点指点。

前后端传输图片的三种数据形式

1.图片地址

当后端生成验证码时,后端可以将图片存放至云服务器上,再将图片地址发送给前端访问。

2.base64

以上两种,直接将res.data赋给img标签的src中即可查看到图片

3.文件流(前端需做地址解析)

在前端打印出来的请求数据是如图,一串unicode乱码。但是利用postman和浏览器调试返回都能看到图片,对于我这个前端小白当时真的是一脸懵逼。

后端返回二进制图片前端乱码解决方案_后端返回图片乱码_Yoki_S的博客-CSDN博客

然后我开始查询资料,当我找到上面这篇文章时,我便开始有了些眉目。就是要将这个看不懂的转化成上面说到的第二种数据形式

即要将文件流转码成base64,要么后端转,要么前端转。

不过这是利用axios访问的后端数据,而我是uniapp。于是我开始往这个方向开始查找答案。

通过查找找到这条博客(๑•̀ㅂ•́)و✧完美解决,两步走!

uniapp 获取文件流展示图片_uniapp图片流_我要长头发!的博客-CSDN博客

两步

1)调用接口时要加responseType:arrayBuff
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
       uni.request({
					url: "http://xxxxx/Login/getvercode",
					method: 'GET',
					data: [], //请求参数
					responseType: "arraybuffer",
					success: res => {
						this.src = 'data:image/png;base64,' + btoa(new Uint8Array(datas).reduce((datas, byte) => datas + String.fromCharCode(byte), ''))
					},
					fail: () => {},
					complete: () => {},
				});
2)转blob地址
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this.src = 'data:image/png;base64,' + btoa(new Uint8Array(datas).reduce((datas, byte) => datas + String.fromCharCode(byte), ''))

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Django集成图片验证码功能:基于django-simple-captcha实现
django-simple-captcha 是一款轻量且高度可定制的 Django 验证码应用,具有以下优势
小王子1024
2025/08/04
760
Django集成图片验证码功能:基于django-simple-captcha实现
SheetJS—(js-xlsx)
github地址:https://github.com/SheetJS/js-xlsx
全栈程序员站长
2022/11/15
5.7K0
5分钟搞定 SpringBoot 图形验证码功能
用户登录几乎是一个线上系统必不可少且使用相对比较频繁的一个模块,为了防止恶意暴力尝试,防止洪水攻击、防止脚本自动提交等,验证码是一个较为便捷且行之有效的预防手段,下面使用三个简单的步骤轻松5分钟搞定一个图形验证码功能;
一行Java
2022/04/07
7K0
5分钟搞定 SpringBoot 图形验证码功能
后台传的图片流在前端展示图片
假如二维码后台传的是图片流,前端展示图片 // 获取二维码图片 getCodeImg() { this.getUUID(); let UUID = window.sessionStorage.getItem("UUID"); this.$axios .get("getImg", { responseType: "arraybuffer", params: { clientId: UUID }
tianyawhl
2020/04/21
2.6K0
谁说前端不需要懂二进制
作为一名前端,在工作中也会遇到很多有关二进制处理的需求,如 EXCEL 表格的导出,PDF 的生成,多个文件的打包,音频的处理。
山月
2020/06/18
1.2K0
接口返回图片二进制流前端展示
咋一看,不是base64格式,二十二进制的图片流数据,前端要想展示,只需要转换数据格式为base64即可。
用户1141560
2019/05/24
7.8K0
uniapp H5 画布自定义海报实现长按识别,分享,转发
前端使用uniapp制作H5自定义海报,本来以为挺简单的一常用功能画布,因为之前也在 H5 和小程序做过类似功能,所以直接上手干了,没想到还是遇到了一些坑,特此记录希望能够帮到大家。
IT工作者
2022/05/16
4K0
Angular企业级开发(9)-前后端分离之后添加验证码
1.背景介绍 团队开发的项目,前端基于Bootstrap+AngularJS,后端Spring MVC以RESTful接口给前端调用。开发和部署都是前后端分离。项目简单部署图如下,因为后台同时采用微服
八哥
2018/01/18
1.9K0
Angular企业级开发(9)-前后端分离之后添加验证码
vue 开发中遇到的功能模块
参考:https://www.jianshu.com/p/0cc51943147d
用户7043603
2022/02/25
4820
简单的说一下人脸识别的过程及前端实现
最近写项目的时候在做一个登录的操作,但是我们因为是多端的,有小程序,有PC,后期可能还有公众号等,所以我们的登录是很多种不同的登录方式的,有最基本的账号密码登录,有微信扫码登录,有工号刷卡登录,有手机验证码登录,当然还有逼格比较高的人脸识别登录,手机验证码登录其实是一个很简单的,所以我可能会在后期写一下处理的过程,今天我们大概说一下人脸识别的一个过程,当然因我不是写后端的,所以这里是不能贴后端的源码的,但是前端的处理还是可以写一下的。
何处锦绣不灰堆
2020/05/29
1.6K0
斗智斗勇的反爬取实践
JSON - https://www.cnblogs.com/lanston1/p/11024147.html
全栈工程师修炼指南
2022/09/28
4850
斗智斗勇的反爬取实践
我也太牛了,解决了浏览器中,前台导出csv格式,UTF-8编码,且excek打开不乱码!
ExcellentExport.js的方法,利用base64下载文件。支持chrome ,opera,firefox. 于是决定拿来为我所用!
申君健
2018/09/21
5.1K0
前端本地文件操作与上传
前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用户可通过以下三种方式操作触发:
IT派
2018/08/10
1.8K0
前端本地文件操作与上传
记一次对bookworm的渗透测试绕过csp
朋友们现在只对常读和星标的公众号才展示大图推送,建议大家把“亿人安全“设为星标”,否则可能就看不到了啦
亿人安全
2024/06/27
2220
记一次对bookworm的渗透测试绕过csp
【验证码逆向专栏】某多多验证码逆向分析
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
K哥爬虫
2024/11/25
2250
【验证码逆向专栏】某多多验证码逆向分析
前端导出 excel(基于 Blob.js 和 Export2Excel.js 做前端导出)
也可以使用 cnpm 安装,在此区分一下 npm -i 与 npm install -s 与 - d 的区别
CRMEB商城源码
2022/06/06
12.8K0
cropperjs图片裁剪及数据提交文件流互相转换详解
cropperjs的主要功能是图片裁剪,是一款前端常用的的图片裁剪工具,可根据相关api配置裁剪出符合自己业务需要的图片,具体使用如下:
超级小可爱
2023/12/21
6710
开发实例:后端Java和前端vue实现图片管理功能
2. 通过input[type=file]元素上传图片,使用element-ui的Upload组件进行封装。
用户1289394
2024/01/19
7920
开发实例:后端Java和前端vue实现图片管理功能
微信小程序 获取手机号 JS
本文原创首发CSDN,链接 https://blog.csdn.net/qq_41464123/article/details/105214094 ,作者博客https://blog.csdn.net/qq_41464123 ,转载请带上本段内容,尤其是脚本之家、码神岛等平台,谢谢配合。 ----
Designer 小郑
2023/08/01
1.8K0
微信小程序 获取手机号 JS
前端Base64编码知识,一文打尽
本文将详细的介绍前端 Base64 编码知识,探索起源,让大家对开发经常用到的 Base64 有个更全面深入的认知。
coder_koala
2021/08/26
1.4K0
推荐阅读
相关推荐
Django集成图片验证码功能:基于django-simple-captcha实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档