接上篇,少了一个方法的源代码。
先上代码:
ploadFilePromiseSync = (url) => {
return new Promise((resolve, reject) => {
// #ifdef MP-WEIXIN
uni.getFileSystemManager().readFile({
filePath: url,
encoding: 'base64',
success: res => {
let base64 = 'data:image/jpeg;base64,' + res.data
resolve(base64)
},
fail: (e) => {
reject("图片转换失败")
}
});
// #endif
// #ifdef H5
uni.request({
url: url,
method: 'GET',
responseType: 'arraybuffer',
success: ress => {
let base64 = uni.arrayBufferToBase64(ress.data)
base64 = 'data:image/jpeg;base64,' + base64
resolve(base64)
},
fail: (e) => {
reject("图片转换失败")
}
});
// #endif
// #ifdef APP-PLUS
plus.io.resolveLocalFileSystemURL(url, (entry) => {
entry.file((file) => {
let fileReader = new plus.io.FileReader();
fileReader.onloadend = (evt) => {
const base64 = evt.target.result.substr(22)
resolve(base64)
};
fileReader.readAsDataURL(file)
});
}, (e) => {
reject("Resolve file URL failed: " + e.message)
});
// #endif
});
}
只需将本地图片的路径传过去即可:
使用:
let img_base64 = await ploadFilePromiseSync(event.file.url)
这篇文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。
想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。
感谢你的阅读与支持,期待在未来的文章中与你再次相遇!