欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

uniapp APP用户修改头像(上传到OSS)

程序员文章站 2022-03-11 16:36:43
uniapp APP用户修改头像(上传到OSS)点击头像进行修改头像**点击头像跳转到新的页面**(先判断用户是否登陆),选择图片,确认上传。**此页面结构如图**(kps-image-cutter为剪切图片插件):**选择图片:**...

uniapp APP用户修改头像(上传到OSS)

点击头像进行修改头像

uniapp APP用户修改头像(上传到OSS)

点击头像跳转到新的页面(先判断用户是否登陆),选择图片,确认上传。


<image class="portrait" :src="headimg ||imagUrl('../../../static/missing-face.png')" @click="navtophoto()"></image>

uniapp APP用户修改头像(上传到OSS)
此页面结构如图(kps-image-cutter为剪切图片插件):

uniapp APP用户修改头像(上传到OSS)
选择图片:

	chooseImage() {
			uni.chooseImage({
				success: res => {
					// 设置url的值,显示控件
					this.url = res.tempFilePaths[0];
				}
			});
		},

确认上传: 1将图片资源存到云服务器,返回图片链接。 2同时向后端发请求修改用户的图片链接。that.path为需要上传的图片路径,

 sureImage(){
 var that=this;
 util.fn_upload(0,0,[that.path],
			function successc(e) {
			//上传成功的回调,向后端发请求修改用户的图片链接。
						var data = {
							mid: that.mid,
							headimg: JSON.parse(e.data).url
						};
						var path = 'member.headimage/set';
						var method = 'get';
						//自己封装的uniapp request请求方法
						util.fn_request(path, data, method, callback);
						function callback(res) {
							console.log(res.data.info);
							uni.hideLoading();
							if (res.data.info) {
								uni.showToast({
									title: '头像修改成功',
									icon: 'none'
								});
							}
						}
					},
					function failc(e) {
						uni.hideLoading();
						uni.showToast({
							title: '网络出了小差',
							icon: 'none'
						});
					}
				);
}
在公用方法util中添加方法:

import config, { ossConfig } from './config';
import uploadOSSFile from './libs/ossutil/uploadFile.js';
function fn_upload(useless1, useless2, tempFilePaths, successc, failc) {
	// useless1 和 useless2 是模拟之前的函数接口
	var filePath = tempFilePaths[0];
	var dir = randomString(40) + '/';
	var url = ossConfig.uploadUrl;
	return uploadOSSFile(filePath, dir, url, function(url) {
		// 模拟之前的 callback
		successc && successc({
			data: JSON.stringify({
				url: url
			})
		})
	}, function(error) {
		console.error(error);
		failc && failc(error);
	});
}

function randomString(len = 10) {
	var result           = '';
	var characters       = 'abcdefghijklmnopqrstuvwxyz0123456789';
	var charactersLength = characters.length;
	for ( var i = 0; i < len; i++ ) {
		result += characters.charAt(Math.floor(Math.random() * charactersLength));
	}
	return result;
}
export default {
fn_upload,
randomString
}
uploadOSSFile。为工具文件uploadOSSFile.js。
可在此下载:**https://gitee.com/zhang123xx/uploadOSSFile.git**

在config公用文件中配置:


export const ossConfig = {
	// 你的阿里云地址最后面跟上一个/   在你当前小程序的后台的uploadFile 合法域名也要配上这个域名
	// uploadImageUrl: ".....................",
	uploadUrl: "...................",
	uploadSecureUrl: ".......................",
	AccessKeySecret: '.....................', // AccessKeySecret 去你的阿里云上控制台上找
	OSSAccessKeyId: '...................', // AccessKeyId 去你的阿里云上控制台上找
	timeout: 87600 //这个是上传文件时Policy的失效时间
}

本文地址:https://blog.csdn.net/weixin_45435854/article/details/107383051