常见的一个需求,使用 Taro 开发的时候,经常会遇到上传图片的问题,下面是具体实现逻辑,代码里面有注释。
使用 Taro.chooseImage 上传。
Taro.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success: async (res) => {
let file = await fileToBase64(res.tempFilePaths[0])
if (file) {
// 更换图像
let uploadRes: any = await profileStore.uptdate_profile_avatar({data: file})
if (uploadRes) {
// TODO
}
}
}
})
将上传的图片转为base64,为了后期我们更好的处理。
// 转base64
const fileToBase64 = (filePath) => {
return new Promise((resolve) => {
let fileManager = Taro.getFileSystemManager();
fileManager.readFile({
filePath,
encoding: 'base64',
success: (e: any) => {
resolve(`data:image/jpg;base64,${e.data}`);
}
});
});
};