uniapp 小程序授权临时路径头像持久化

小程序授权头像临时路径持久化

// 头像授权-需要用到 open-type="chooseAvatar"
<button open-type="chooseAvatar" @chooseavatar="onChooseAvatar"></button>

async onChooseAvatar(e) {	//获取头像
	// e.detail.avatarUrl 临时路径
	const result = await uploadFilePromise(e.detail.avatarUrl);
	// uploadFilePromise 改方法是封装好的 上传图片到服务器,如:oss 换取持久化头像地址
	//至此 result 我们就获取到了 持久化地址下面就可以正常操作
	//如:调用修改用户信息接口 修改头像
	let data = {
		head_portrait: result.resource_name
	};
	saveUserInfo(data).then(res => {
		// 完成 可以进行 你需要的操作
	});
}

// uploadFilePromise 封装方法 根据自己的需求修改
/**
 * @baseUrl url地址
 * @function uploadFilePromise
 * @description 上传图片
 * @param {String} url 本地路径
 * @param {File} file 二进制文件流
 * @return {void} 
 * @example  
   uni.chooseImage({
    success(res){
     console.log(res.tempFilePaths[0]);// 图片文件本地地址
     uploadFilePromise(res.tempFilePaths[0],res.tempFiles[0]).then(res=>{
      console.log('结果',res)
     })
    }
   })
 */
export async function uploadFilePromise(url) {
	url = Array.isArray(url) ? url[0] : url;
	let data = {
		returnPath:'true'
	};
	return new Promise((resolve, reject) => {
		uni.uploadFile({
			url: baseUrl + '/api/ali/uploadFile', // 接口地址 baseUrl 域名地址
			type: 'POST',
			// #ifdef H5
			files: [{
				name: 'file',
				uri: url,
			}],
			header: {
				token: //获取自己的token
			},
			// #endif
			// #ifdef MP || APP
			filePath: url,
			name: 'file',
			header: {
				'content-type': 'multipart/form-data',
				token: //获取自己的token
			},
			// #endif
			formData: data,
			success: (res) => {
				let datas = JSON.parse(res.data);
				resolve(datas)
			},
			fail(err) {
				console.log(err);
				reject(err)
			}
		});
	})
}
  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值