目前测试是这样的,有不对的地方或有更好的方法请留言
云函数
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
return await cloud.uploadFile({
cloudPath: event.path,
fileContent: new Buffer.from(event.file, 'base64')
}).then(res =>{
console.log('文件上传成功',res);
res.msg = '图片上传成功';
return res;
}).catch(err =>{
console.log('文件上传失败',err);
err.msg = '图片上传失败';
return err;
})
}
js
wx.chooseMedia({
success: (res) => {
const tempFilePath = res.tempFiles[0].tempFilePath;
console.log('本地图片路径:',res);
wx.getFileSystemManager().readFile({
filePath: tempFilePath, //选择图片返回的相对路径
encoding: 'base64', //编码格式
success: (_res) => {
console.log('base64转化成功',_res);
wx.cloud.callFunction({
name: 'uploadFile',
data: {
path: 'user_photo/demo.png',
file: _res.data,
},
success: (res) => {
console.log('图片上传成功', res);
},
fail: (err) => {
console.log('图片上传失败', err);
wx.showToast({
icon: 'none',
title: '图片过大,请重新选择',
})
}
})
},
fail:(_err) =>{
console.log('base64转化失败',_err);
}
});
}
})
网友评论