微信答题小程序云开发--实现云函数上传题目图片 base64功能
需求功能
题目带有图片,需要支持上传图片功能。微信答题小程序云开发,实现云函数上传题目图片、存储功能、查询显示等功能。
云函数开发遇到的问题
在微信云开发环境当中,普通的用户并没有往云存储内写入文件的权限。

所以普通用户想要使用wx.cloud.uploadFile显然是不现实的。
但是我们同时也知道,云函数是后台服务端,具有管理员权限,只要能调用云函数上传文件就可以解决这个问题了。
参照官方文档中云函数的写法。
uploadFile
将本地资源上传至云存储空间,如果上传至同一路径则是覆盖。

使用示例
Promise 风格
const cloud = require('wx-server-sdk')
const fs = require('fs')
const path = require('path')cloud.init({env: cloud.DYNAMIC_CURRENT_ENV
})exports.main = async (event, context) => {const fileStream = fs.createReadStream(path.join(__dirname, 'demo.jpg'))return await cloud.uploadFile({cloudPath: 'demo.jpg',fileContent: fileStream,})
}
官方文档写的云里雾里,并不是这么容易理解。
_dirname代表的是文件根目录,官方文档能实现的功能貌似只是移动云存储空间中的文件,并不能操作本地文件。
解决方案
只上传文件路径是不能把本地文件成功上传到云存储的,但是我们可以将本地文件进行 进制 编码 转化为字节流上传到云函数中。
再在云函数的操作中把字节或文件转化为相对应的格式。
微信小程序文档为我们提供了一个很好的用于编码文件的功能函数。
利用这个函数,可以把图片编码成为base64 的形式上传到云函数。
如果是多个图片上传,只需要遍历即可。
上传图片至云存储
//上传图片至云存储
wx.cloud.callFunction({name: 'uploadFile',data: {path: 'images/product/1710750841751491725.3929234613.jpg',base64Str}})
node中将base64转成Buffer
// node中将base64转成Bufferlet base64 = event.base64Str.replace(/^data:image\/\w+;base64,/, '')const { fileID } = await cloud.uploadFile({cloudPath: event.path,fileContent: Buffer.from(base64, 'base64') // 把base64码转成buffer对象})
实现效果
成功上传,在云存储中查看:

在答题小程序中显示效果:

一种云存储文件名称的编码方式
基本方式在js文件中已经有具体描述,通过具体到秒的时间和图片的上传顺序进行编码 基本可以保证不会有重名的文件存在。
现在给出时间的编码方式:
function vcode(date)
{var year = date.getFullYear()var month = date.getMonth() + 1var day = date.getDate()var hour = date.getHours()var minute = date.getMinutes()var second = date.getSeconds()return [year, month, day].map(formatNumber).join('_') + '_'+[hour, minute, second].map(formatNumber).join('_')
}相关文章:
微信答题小程序云开发--实现云函数上传题目图片 base64功能
需求功能 题目带有图片,需要支持上传图片功能。微信答题小程序云开发,实现云函数上传题目图片、存储功能、查询显示等功能。 云函数开发遇到的问题 在微信云开发环境当中,普通的用户并没有往云存储内写入文件的权限。 所以普通用户想要使用…...
学会Sass的高级用法,减少样式冗余
在当今的前端开发领域,样式表语言的进步已经显著提升了代码组织性和可维护性。Sass(Syntactically Awesome Style Sheets)作为CSS预处理器的翘楚,以其强大的变量、嵌套规则、混合宏(mixin)、循环和函数等高…...
【Java初阶(五)】类和对象
❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ 🚚我的代码仓库: 33的代码仓库🚚 目录 1. 前言2.面向对象的认识3.类的认识4. 类的实例化4.1什么是实例化4.2类和对象的说明 5.this引用6.对象初始化6.1 构造方法 7.static关键字8.代码块8.1 …...
AWTK-MODBUS 服务器
AWTK-MODBUS 服务器 1. 介绍 AWTK-MODBUS 提供了一个简单的 MODBUS 服务器,可以通过配置文件来定义寄存器和位的数量和初始值。 启动方法: bin/modbus_server_ex config/default.json2. 配置文件 配置文件使用JSON格式。 url: 连接地址auto_inc_in…...
JavaScript快速入门笔记之一(基本概念)
JavaScript快速入门笔记之一(基本概念) 前端三大语言: HTML:专门编写网页内容的语言CSS:专门美化网页样式的语言JavaScript:专门编写网页交互的语言 名词解释: 交互:输入数据&#…...
前端学习之css基本网格布局
网格布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>网格布局</title><style>.a{/* grid网格布局 */display: grid;width: 400px;height: 400px;border: 1px solid red;/* 设置当前…...
[网鼎杯2018]Unfinish 两种方法 -----不会编程的崽
网鼎杯太喜欢搞二次注入了吧。上次是无列名盲注,这次又是二次注入盲注。。。不知道方法还是挺难的。哎,网鼎嘛,能理解透彻就很强了。能自己做出来那可太nb了。 又是熟悉的登录框。不知道这是第几次看见网鼎杯的登录框了。后台扫描一下&#x…...
安防监控视频汇聚平台EasyCVR在银河麒麟V10系统中的启动异常及解决方法
安防监控视频平台EasyCVR具备较强的兼容性,它可以支持国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK,如:海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等。平台兼容性强,支持Windows系…...
了解云原生
声明:内容来自AI,未经验证,仅供参考! 1、云原生学习路线 学习云原生(Cloud Native)技术涉及了解和掌握一系列的概念、技术和工具。云原生是一种构建和运行应用程序的方法,旨在充分利用云计算的灵活性、可伸缩性和弹性。以下是一…...
【go从入门到精通】for和for range的区别
作者简介: 高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C,go等语言开发经验,mysql,mongo,redis等数据库,设计模…...
【C语言】【Leetcode】88. 合并两个有序数组
文章目录 一、题目二、思路再思考 一、题目 链接: link 二、思路 这题属于简单题,比较粗暴的做法就是直接比较两个数组,先把第二个数组加到第一个的后面,如何冒泡排序,这种方法简单粗暴但有效,可是不适用于这题&…...
DMA控制器
前言 大家好,我是jiantaoyab,这是我作为学习笔记的25篇,本篇文章给大家介绍DMA。 无论 I/O 速度如何提升,比起 CPU,总还是太慢。如果我们对于 I/O 的操作,都是由 CPU 发出对应的指令,然后等待…...
SQLiteC/C++接口详细介绍sqlite3_stmt类(十)
返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(九) 下一篇: SQLiteC/C接口详细介绍sqlite3_stmt类(十一) 38、sqlite3_column_value sqlite3_column_valu…...
Android 生成Excel文件保存到本地
本文用来记录在安卓中生成Excel文件并保存到本地操作,在网上找了好久,终于找到一个可以用的,虽然代码已经很老的,但亲测可用! 项目地址:https://github.com/wanganan/AndroidExcel 可以下载下来修改直接用…...
Hive-技术补充-ANTLR语法编写
一、导读 我们学习一门语言,或外语或编程语言,是不是都是要先学语法,想想这些语言有哪些相同点 1、中文、英语、日语......是不是都有 主谓宾 的规则 2、c、java、python、js......是不是都有 数据类型 、循环 等语法或数据结构 虽然人们在…...
6.使用个人用户登录域控的成员服务器,如何防止个人用户账号的用户策略生效?
(1)需求: (2)实战配置步骤 第一步:创建新的策略-并编辑策略 第二步:将策略应用到服务器处在OU 第三步:测试 (1)需求: 比如域控,或者加入域的…...
模拟算法
例题一 算法思路: 纯模拟。从前往后遍历整个字符串,找到问号之后,就⽤ a ~ z 的每⼀个字符去尝试替换即 可。 例题二 解法(模拟 分情况讨论): 算法思路: 模拟 分情况讨论。 计算相邻两个…...
【数据结构刷题专题】—— 二叉树
二叉树 二叉树刷题框架 二叉树的定义: struct TreeNode {int val;TreeNode* left;TreeNode* right;TreeNode(int x) : val(x), left(NULL), right(NULL); };1 二叉树的遍历方式 【1】前序遍历 class Solution { public:void traversal(TreeNode* node, vector&…...
基于AWS云服务构建智能家居系统的最佳实践
在当今智能家居时代,构建一个安全、高性能、可扩展和灵活的智能家居系统已经成为许多公司的目标。亚马逊网络服务(AWS)提供了一系列云服务,可以帮助企业轻松构建和管理智能家居系统。本文将探讨如何利用AWS云服务构建一个智能家居系统,并分享相关的最佳实践。 系统架构概述 该…...
Java零基础-集合:Set接口
哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…...
2026保姆级教程:免费一键去图片水印的App有哪些?这几种方法一看就会
你是不是也遇到过这种抓狂的时刻?好不容易在网上找到一张绝美壁纸或实用素材,保存下来一看,角落那个水印直接毁掉了整张图的氛围。更气人的是,你尝试用相册自带的编辑功能去涂抹,结果越涂越糊,最后只能无奈…...
Grafana告警规则配置实战
Grafana告警规则配置实战 一、Grafana告警概述 Grafana提供强大的告警功能,可以基于Prometheus等数据源触发告警通知。 1.1 告警流程 ┌────────────────────────────────────────────────────────────…...
2026亲测:专业AI智能降重工具TOP1推荐
2026 年降 AIGC 工具已从“机械式文本改写”演进为多维度智能优化系统,核心评估指标涵盖 AI 痕迹识别精准度、专业语义一致性、格式结构完整性、长段落逻辑稳定性、降重适配性以及高校检测合规性。本次测评深入分析 5 款主流工具,测试内容覆盖中英文论文…...
中文医疗对话数据集:构建医疗大语言模型的黄金语料库
中文医疗对话数据集:构建医疗大语言模型的黄金语料库 【免费下载链接】Chinese-medical-dialogue-data Chinese medical dialogue data 中文医疗对话数据集 项目地址: https://gitcode.com/gh_mirrors/ch/Chinese-medical-dialogue-data 在医疗AI领域&#x…...
通过curl命令直接测试Taotoken大模型API连通性的方法
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过curl命令直接测试Taotoken大模型API连通性的方法 在接入大模型服务时,直接使用curl命令进行API测试是一种高效、直…...
如何让Axure RP显示中文:三分钟搞定界面本地化
如何让Axure RP显示中文:三分钟搞定界面本地化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文…...
GPT-SoVITS终极指南:5秒克隆任何人的声音,免费快速上手AI语音克隆技术
GPT-SoVITS终极指南:5秒克隆任何人的声音,免费快速上手AI语音克隆技术 【免费下载链接】GPT-SoVITS 1 min voice data can also be used to train a good TTS model! (few shot voice cloning) 项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-…...
观察Taotoken在多模型间自动路由与容灾切换的实际响应情况
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察Taotoken在多模型间自动路由与容灾切换的实际响应情况 在构建依赖大模型服务的应用时,服务的连续性与稳定性是开发…...
DeepSeek多租户告警隔离方案(企业级RBAC+命名空间级告警路由+审计日志溯源)
更多请点击: https://codechina.net 第一章:DeepSeek多租户告警隔离方案(企业级RBAC命名空间级告警路由审计日志溯源) DeepSeek平台面向金融、政企等高合规要求场景,构建了细粒度的多租户告警隔离体系。该方案以企业级…...
为什么你的ChatGPT文案点赞不过50?:曝光量断层背后的3个隐藏信号+实时诊断自查表(附赠算法工程师内部校验清单)
更多请点击: https://codechina.net 第一章:为什么你的ChatGPT文案点赞不过50? 你精心打磨的ChatGPT提示词,生成了逻辑清晰、文风优雅的文案,却在社交平台仅收获47个赞——这并非内容质量的问题,而是**人机…...
