uniapp获取头像文件(二进制文件显示图片)

一、描述

由于在获取头像文件过程中,传递参数之后,请求成功了,但是后端给我返回了一串二进制数据流,傻傻的我,以为是乱码,跑去问后端大哥,人家跟我说这不是二进制吗,突然就觉得自己傻傻的。

如图,这个请求到的:当时是以json格式请求的:

二、解决

好吧,看来问题出现到我身上,我就到处搜,乱试,然后发现下面这个方法可行,分享一下吧:

首先,我把他封装成一个工具,方法调用,不然每次都在页面上写一堆,因为请求头像的地方挺多。

javascript 复制代码
// 获取头像
import store from "../../store/index.js"

export function Getimg(code, id, callback) {
	uni.request({
		url: `https:。。。。。。。。。。。。。。。/${code}/${id}`,   //挂上你的请求地址
		method: 'GET',
		// arraybuffer
		responseType: 'arraybuffer',
		header: {
			"Authorization": `Bearer ${store.state.access_token}`
		},
		success: res => {
			let base64 = 'data:image/jpeg;base64,' + uni.arrayBufferToBase64(res.data)
			// console.log("base64",base64);
			callback(null, base64,res.data);   //当转成base64文件之后,使用callback传一个回调回去,第一个参数是错误信息,这个这里就随便了,base64这个值就是能正常显示的,res.data我是把返回的对象拿出去做判断,具体根据需不需要再传吧,反正就是正常的传值。传什么自己根据业务需要传。
		},
		fail: (err) => {
			callback(err, null); // 传递错误  
		}
	});
}

调用:

javascript 复制代码
// 获取头像
			async getAvatar(code, id) {
				await Getimg(code, id, (err, base64,data) => {
					if(data.byteLength == 63) {
						this.imageurl = defalutImg
					} else {
						console.log("base",base64);
						this.imageurl = base64
					}
				});
			},
html 复制代码
<image :src="imageurl" mode="" class="avatar"></image>

就是这样嘛!代码写的还是有些问题,还有这个方法只是其一,等发现好一点的办法再更新!

相关推荐
小徐_23334 小时前
uni-app 项目别再从零搭了!3 个 Wot UI 起手模板怎么选?
前端·uni-app
蜡台5 小时前
uniapp pdf文件预览组件
pdf·uni-app·合同·pdfh5
凡泰AI10 小时前
如何借助MCP打通企业APP内部服务:从统一调用到小程序承接
小程序·uni-app·app·mpaas·mcp·小程序容器
华玥作者11 小时前
uniapp 万条数据不卡顿:我写了个虚拟列表组件 hy-list,原生支持瀑布流
数据结构·uni-app·list·vue3
这是个栗子11 小时前
uni-app 微信小程序开发:常用函数总结(一)
微信小程序·小程序·uni-app·getcurrentpages
宠友信息2 天前
消息序号如何保证即时通讯源码聊天记录稳定加载
java·spring boot·redis·python·mysql·uni-app
2501_916008892 天前
苹果上架工具怎么选 不用 Mac 上架 App Store 的几种方案
android·macos·ios·小程序·uni-app·iphone·webview
宠友信息2 天前
MySQL复合索引与Druid优化仿小红书源码个人主页查询链路
数据库·spring boot·websocket·mysql·uni-app
秃头披风侠_郑4 天前
【uniapp】一文让你学会微信小程序+APP+H5全平台实战指南
前端·微信小程序·uni-app
宠友信息4 天前
消息撤回与已读状态如何在即时通讯源码中统一管理
java·spring boot·websocket·mysql·uni-app