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>

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

相关推荐
2501_915106323 小时前
如何在 Mac 上面代理抓包和数据流分析
android·macos·ios·小程序·uni-app·iphone·webview
2501_915921434 小时前
在 Linux 上通过命令行上架 iOS APP,Fastlane + AppUploader(开心上架)
android·linux·运维·ios·小程序·uni-app·iphone
2501_915921434 小时前
从构建到 IPA 保护,Flutter iOS 包如何做混淆与安全处理
android·安全·flutter·ios·小程序·uni-app·iphone
2501_916008894 小时前
iPhone 手机硬件组件使用耗能历史记录查看,能耗查看
android·ios·智能手机·小程序·uni-app·iphone·webview
游九尘4 小时前
uniapp查看下载文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx
uni-app
前端Hardy19 小时前
用 uni-app x 重构我们的 App:一套代码跑通 iOS、Android、鸿蒙!人力成本直降 60%
前端·ios·uni-app
嘉琪0012 天前
uni-app 核心坑点及解决方案——2026 0309
uni-app
行者-全栈开发2 天前
uni-app 审批流程组件封装:打造企业级工作流可视化方案
uni-app
2501_916008892 天前
iPhone 上怎么抓 App 的网络请求,在 iOS 设备上捕获网络请求
android·网络·ios·小程序·uni-app·iphone·webview
jingling5552 天前
无需重新安装APK | uni-app 热更新技术实战
前端·javascript·前端框架·uni-app·node.js