微信cdn上传图片是指通过微信的内容分发网络(cdn)来上传和传输图片,以提高图片加载速度和访问效率。
1、选择图片:通过wx.chooseImage
API选择图片,并获取本地路径。
2、读取文件内容:使用wx.getFileSystemManager().readFile
将图片转为Base64字符串,或直接读取文件流。
3、调用云函数:通过wx.cloud.callFunction
调用云函数,将图片数据传递到云端。
4、上传到云存储:在云函数中,使用cloud.uploadFile
将接收到的图片数据上传到微信云存储。
5、返回结果:云函数返回上传后的文件ID或URL,前端可以据此进行后续操作。
下面是具体的实现代码:
// 客户端代码(小程序) wx.chooseImage({ count: 3, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success(res) { const tempFilePaths = res.tempFilePaths; let promises = []; tempFilePaths.forEach((path) => { promises.push(new Promise((resolve, reject) => { wx.getFileSystemManager().readFile({ filePath: path, encoding: 'base64', success(response) { wx.cloud.callFunction({ name: 'quickstartFunctions', config: { env: 'yourenv' }, data: { type: 'uploadPicture', file: response.data }, success(res) { console.log('Upload success:', res); resolve(res); }, fail(err) { console.error('Upload failed:', err); reject(err); } }); } }); })); }); Promise.all(promises).then((results) => { console.log('All uploads complete:', results); }).catch((error) => { console.error('Error in one of the uploads:', error); }); } });
// 云函数代码(Node.js) const cloud = require('wxserversdk'); cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); exports.main = async (event, context) => { try { return await cloud.uploadFile({ cloudPath: event.path, // 指定云存储中的路径 fileContent: Buffer.from(event.file, 'base64') // Base64转Buffer }); } catch (e) { return e; } };
代码展示了如何在微信小程序中使用CDN上传图片的基本流程,包括选择图片、读取文件内容、调用云函数以及在云函数中上传图片到云存储。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1242881.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复