当前位置: 首页 > ds >正文

微信小程序使用腾讯云COS SDK实现用户头像上传

  • 引入与初始化COS SDK  (从官网下载cos-wx-sdk-v5.js文件,本地上传)
const COS = require('../../../static/utils/cos-wx-sdk-v5.js') as any;//实例化一个cos对象
const cos = new COS({SecretId: 'AK***********************VedSJ', //idSecretKey: 'qUy*************************K4bv2' //密钥
});
  • 用户点击头像触发上传操作
    const handleAvatarClick = () => {popupType.value = 'avatar';entityList.value = categoryList.value;popup.value.open();
    };

    点击头像项时,打开底部弹窗,让用户选择是拍摄还是从相册选择

  • 读取文件内容并上传至COS
const uploadToCOS = (filePath: string, key: string): Promise<string> => {return new Promise((resolve, reject) => {//读取本地文件数据uni.getFileSystemManager().readFile({filePath,success: (fileData) => {//调用方法上传对象到COS存储桶cos.putObject({Bucket: 'cs************387', //桶名称Region: 'ap-*****',   //地域Key: key,Body: fileData.data,ContentType: 'image/jpeg'}, (err: any, data: any) => {if (err) {reject(err);} else {resolve(`https://${data.Location}`);}});},fail: (err) => {reject(err);}});});
};
  • 更新用户信息并提交修改
    uCenterInfo.icon_url = avatarUrl;
    await changeUserInfo();

    将上传成功后的头像地址avatarUrl设置到uCenterInfo.icon_url,调用changeUserInfo()方法将更新后的用户信息提交到后端服务。

  • 错误处理
catch (error) {uni.showToast({ title: '上传失败', icon: 'none' });console.error('上传失败:', error);
}
  • 总结COS上传完整流程图解
    点击头像 → 打开弹窗选择“从相册选择”↓
    调用 uni.chooseImage → 获取临时文件路径↓
    构造唯一文件名 → 准备上传到 COS↓
    调用 uni.getFileSystemManager().readFile → 读取文件二进制数据↓
    调用 cos.putObject → 上传到腾讯云 COS↓
    上传成功 → 获取 CDN 访问链接↓
    更新 uCenterInfo.icon_url → 提交用户信息修改

http://www.xdnf.cn/news/4872.html

相关文章:

  • android studio开发:设置屏幕朝向为竖屏,强制应用的包体始终以竖屏(纵向)展示
  • MySQL数据库初体验
  • Spark存储级别
  • LangChain框架-PromptTemplate 详解
  • exo:打造家用设备AI集群的开源解决方案
  • 北京丰台人和中医院,收费贵吗?
  • 构建高可用性的LVS-DR群集:实现无缝的负载均衡与故障转移
  • 龙虎榜——20250508
  • stm32之DMA
  • 游戏引擎学习第264天:将按钮添加到分析器
  • DataWorks快速入门
  • 如果路由器规模恰好介于16台这个临界值那么是选用RIP还是ospf协议?
  • nginx 会话保持(cookie的配置)
  • 从简历筛选到面试管理:开发一站式智能招聘系统源码详解
  • Missashe考研日记-day35
  • 1.3.1 Linux音频框架alsa详细介绍
  • CAP理论:分布式系统的权衡
  • HTTP 状态码是服务器对客户端请求的响应标识,用于表示请求的处理结果
  • SEMI E40-0200 STANDARD FOR PROCESSING MANAGEMENT(加工管理标准)-(二)
  • 功能安全的关键——MCU锁步核技术全解析(含真实应用方案)
  • 深度 |提“智”向新,奔向未来——当前机器人产业观察
  • Redis协议与异步方式
  • 重定向及基础实验
  • QStackedLayout、QStackedWidget 二者的区别?
  • 桥隧坡灾害监测报警:用科技筑起生命安全的“智能防线”
  • C++23 views::as_rvalue (P2446R2) 深入解析
  • Hutool中的Pair类详解
  • Simufact Welding重塑新能源汽车电池盒焊接工艺
  • C程序题案例分析
  • Nacos源码—6.Nacos升级gRPC分析一