云函数开发遇到的问题
在微信云开发环境中,普通用户是没有权限向云存储写入文件的。
所以普通用户使用wx显然是不现实的。。
但是我们也知道云函数是一个具有管理员权限的后台服务器,只要我们能调用云函数来上传文件,就可以解决这个问题。
如何编写云函数请参考官方文档
const cloud = require('wx-server-sdk') const fs = require('fs') const path = require('path') exports.main = async (event, context) => { const fileStream = fs.createReadStream(path.join(__dirname, 'demo.jpg')) return await cloud.uploadFile({ cloudPath: 'demo.jpg', fileContent: fileStream, }) }
官方文档比较混乱,不容易理解。
代表文件的根目录,官方文档好像只能移动云存储空间里的文件,不能操作本地文件。
解决方案
仅通过上传文件路径无法将本地文件成功上传到云存储,但可以通过二进制编码将本地文件转化为字节流再上传到云函数。
然后在云函数操作中将字节或者文件转换成相应的格式
微信小程序文档为我们提供了一个很好的文件编码功能
wx.()
使用此功能,您可以对图像进行编码并将其上传到云功能。
如果上传多张图片,只需要遍历
wx.getFileSystemManager().readFile({ filePath: that.data.images[i], //选择图片返回的相对路径 encoding: 'base64', //编码格式 succe