小程序上传图片到七牛云

news/2025/1/15 15:45:00/文章来源:https://www.cnblogs.com/yidejiyi/p/18673169

前言

最近在做小程序用户信息收集时发现用户选择完头像保存到数据库之后无法访问的情况,后面仔细排查了选择头像后返回的内容发现问题。

准备

微信开发者工具基础库版本:3.7.0

服务端:Golang

我们先看下选择头像的方法

小程序最新公告获取用户头像和昵称需要手动选择具体查看小程序公告

// 这里是小程序最新改版后的选择头像方式 
<button class="bottom-avatat" open-type="chooseAvatar" bindchooseavatar="handleChooseavatar">上传头像
</button>
// 用户选择头像后的回调函数携带用户头像信息
handleChooseavatar(res) {console.log("头像", res);
}

返回用户头像信息

{avatarUrl: "http://tmp/HMGdsVqDrSn88874efe7e9cf1b9721b1f3afd74ff694.jpg"}

根据返回参数不难发现上传的地址是:http://tmp/HMGdsVqDrSn88874efe7e9cf1b9721b1f3afd74ff694.jpg。这个地址后续是无法访问地,我们需要把他上传到自己的服务器保存。

我选择的是将图片保存到七牛云上

首先我们要生成七牛云上传凭证 Golang 生成,其他服务端语言自行编写

var (accessKey = "七牛云 accessKey"secretKey = "七牛云 secretKey"bucket    = "自己的 对象存储空间 "
)
​
func GetQiniuToken(c *gin.Context) {mac := credentials.NewCredentials(accessKey, secretKey)
​putPolicy, err := uptoken.NewPutPolicy(bucket, time.Now().Add(1*time.Hour))// 这里是返回配置 根据自己需要putPolicy.SetReturnBody(`{"key":"$(key)","hash":"$(etag)"}`)if err != nil {// 根据自己需要返回错误信息return}upToken, _ := uptoken.NewSigner(putPolicy, mac).GetUpToken(context.Background())  c.JSON(http.StatusOK, gin.H{"token": upToken})
}

修改一下选择头像后的处理方法

handleChooseavatar(res) {const uploadTask = wx.uploadFile({url: 'http://七牛存储所在地区根据实际情况填写',filePath: res.detail.avatarUrl, // 选择 头像后的临时访问地址name: 'file',formData: {'token':'这里是获取的服务端返回的 七牛上传凭证 token ',},success: res => console.log("---- 上传成功 -----", res),fail: err => console.log("---- 上传失败 ----", err)})},

上传成功后会返回​服务端配置的信息:{"key":"$(key)","hash":"$(etag)"}

至此头像上传成功
访问路径​:七牛文件管理配置的外联域名 + key
例如:七牛文件管理配置的外联域名​:http://qiniu.wailian.cn
key:FlNm_pkkkv6_pw_vzyp6kj0zqnk
​文件访问地址:

http://qiniu.wailian.cn/FlNm_pkkkv6_pw_vzyp6kj0zqnk

到这里大功告成​

小程序的其他文件上传也可以采用这种方式​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/869653.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通义发布语音模型 MinMo:全双工、多口音;MiniCPM-o :端侧 GPT-4o 级视觉、语音、多模态实时流式大模型

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

部署 Browser-Use WebUI + DeepSeek 实现浏览器AI自动化

一、安装部署 1.安装 python3.11 或以上版本2.安装browser-use pip install browser-use3.安装 Playwright playwright install4.安装项目依赖 pip install langchain-google-genai==2.0.8 pip install pyperclip==1.9.0 pip install gradio==5.9.1 pip install langchain-olla…

Day_01

学习MarkDownMarkDown学习 标题: 二级标题 三级标题 字体 hello world hello world hello world hello world hello world 引用选择狂神说Java,走向人生巅峰分割线图片超链接 点击跳转到B站 列表A B CA B C表格名字 性别 生日张三 男 2000.1.4代码 public static

高效团队如何选择问题管理工具?六款推荐与理由

1. 板栗看板(Banli Kanban) 推荐理由: 板栗看板是由重庆赛迪信息公司研发的在线协同文档编辑与项目管理工具,专为中国企业的团队协作需求量身打造。核心功能:板栗看板集任务管理、实时协作编辑、进度追踪于一体,通过简洁直观的界面帮助团队掌握开发节奏。适用场景:适合中…

任务分配与信息共享:跨职能团队协作的利器

一、跨职能团队协作的挑战 沟通障碍与信息不对称 跨职能团队通常由来自不同部门的成员组成,各个部门之间存在语言、目标和工作方式上的差异。例如,研发团队更加注重技术细节和功能实现,而市场和销售团队则关注产品的市场定位、推广策略和客户需求。这种背景差异往往会导致沟…

告别付费拍证件照!NAS 基于Docker部署免费证件照生成工具

你在生活中有没有遇到过急需证件照的场景?在某些考试前发现证件照还没准备好;求职面试时,也需要附上职业证件照,生活中还有很多需要证件照的场景。 本文章利用NAS基于Docker部署一款证件照自动生成的工具—HivisionIDPhotos。 利用‌HivisionIDPhotos‌,通过一张生活照片,…

揭秘35岁技术人去向:是高薪管理,还是无奈转行?

1 35 岁危机 35 是虚指,不一定 35 岁,也可是一个区间。有人 33 岁,有人是 40 岁。对技术人,到年龄确实明显困境。甚至不到 35 岁,网上招聘焦虑到32岁。 头部大厂小伙伴说晋升就像“续命卡”。升上去不一定稳,但可“多活”一两年,升不上去,不但目前绩效难保,甚至可能进…

电商小年营销全攻略:从策略到执行的全方位指南

电商小年营销需要从了解消费者需求、营造节日氛围、创新营销活动、社交媒体营销、优化物流配送以及提供优质服务等方面入手,全面提升营销效果和消费者体验。电商小年营销是针对小年这一传统节日进行的电子商务推广活动。小年作为春节的前奏,具有浓厚的节日氛围和独特的消费习…

TangGo:国产化综合红队协同工具

免责声明 请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与本公众号无关。最近我们团队在进行hvv演练的时候,我真切体会到了在日常工作中对高效工具的需求,找到一款合适的测试平台简直是事半功倍。 后面用了TangGo测试平台。这款工具真是让我省心不少。之前…

电商新年采购管理:优化策略与工具应用

电商新年用品采购管理是一个复杂而细致的过程,需要公司多个部门的协同合作和共同努力。通过科学的管理方法和工具的应用,可以提高采购效率、降低采购成本、确保商品质量,从而提升公司的竞争力和市场地位。电商新年用品采购管理是一个涵盖多个环节和方面的综合性工作,以下是…

输出Hello word

输出Hello word打开Notepad++文档,方便书写代码新建一个java文件编写代码 public class hello{public static void main (String[] args){ //格式固定的标题头System.out.print("hello word"); //输出的内容} }在cmd中编译javac …

如何管理研发进度拖延?中小科技企业适用的工具推荐

在科技行业蓬勃发展的当下,中小型科技企业面临着激烈的市场竞争。对于它们而言,研发流程的高效性直接关乎企业的生存与发展。敏捷方法作为一种灵活且高效的项目管理理念,正逐渐成为众多企业优化研发流程的关键选择。通过实施敏捷方法,企业能够快速响应市场变化,提升产品质…