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>

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

相关推荐
予你@。1 天前
UniApp + Vue3 实现 Tab 点击滚动定位(微信小程序)
微信小程序·小程序·uni-app
游戏开发爱好者81 天前
完整教程:App上架苹果App Store全流程指南
android·ios·小程序·https·uni-app·iphone·webview
予你@。2 天前
uni-app progress 组件使用详解
uni-app
iOS阿玮2 天前
春节提审高峰来袭!App Store 审核时长显著延长。
uni-app·app·apple
2501_916007472 天前
ios上架 App 流程,证书生成、从描述文件创建、打包、安装验证到上传
android·ios·小程序·https·uni-app·iphone·webview
2501_915106323 天前
iPhone 文件管理,如何进行应用沙盒文件查看
android·ios·小程序·https·uni-app·iphone·webview
2501_915921433 天前
Fastlane 结合 AppUploader 来实现 CI 集成自动化上架
android·运维·ci/cd·小程序·uni-app·自动化·iphone
云游云记3 天前
vue2 vue3 uniapp (微信小程序) v-model双向绑定
微信小程序·uni-app·vue
2501_915921433 天前
iOS 抓包怎么绕过 SSL Pinning 证书限制,抓取app上的包
android·网络协议·ios·小程序·uni-app·iphone·ssl
予你@。4 天前
uni-app(Vue3)实现自定义 Tab 切换滑块效果(微信小程序)
vue.js·微信小程序·uni-app