网上多数都是通过微信api将图片url 转换成Base64 格式,但仅限于网络地址的图片,本地路径的图片转换会报错,如下:
真机下会出错报无效的路径(不可用)
request:fail invalid url "wxfile://tmp_7c6025b86ad385c609d0094facbeb1c7ca426dc83b33e628.jpg"
wx.request({
url: temp,//临时路径
responseType: 'arraybuffer', //设置返回的数据格式为arraybuffer
success: res => {
const base64 = wx.arrayBufferToBase64(res.data)},
})
其他解决方案 https://www.jianshu.com/p/c7649a278fd0
有效解决方案
使用 uni.getFileSystemManager().readFile
uni.chooseImage({
count: 1, //默认9
sizeType: ['compressed'],
sourceType: ['album'], //从相册选择
success: (res) => {
this.src = res.tempFilePaths[0]
uni.getFileSystemManager().readFile({
filePath: this.src,
encoding: 'base64',
success: r => { // r.data }
})
}
})