新建js文件中写入
/**
* 临时图片路径转base64
* @param {Object} param 传一个对象,对象里包括
* url: 临时图片存放路径,选择图片返回的相对路径
* type: 图片类型,如:png
*/
export const imgBase64 = (url, type) => {
return new Promise((resolve, reject) => {
if (!!uni.getFileSystemManager()) {
console.log(1, url, type)
uni.getFileSystemManager().readFile({
filePath: url, //选择图片返回的相对路径
encoding: "base64", //编码格式
success: (res) => {
console.log(2)
resolve(
"data:image/" +
type.toLocaleLowerCase() +
";base64," +
res.data
);
},
fail: (res) => reject(res.errMsg),
});
} else {
console.log(3)
uni.request({
url: url,
method: "GET",
responseType: "arraybuffer",
success: (ress) => {
console.log(4)
let base64 = wx.arrayBufferToBase64(ress.data); //把arraybuffer转成base64
base64 = "data:image/jpeg;base64," + base64; //不加上这串字符,在页面无法显示的
resolve(base64);
},
fail: (res) => reject(res.errMsg),
});
}
});
}
以上写法返回promise类型返回值,使用时注意接收方式
代码来源: https://zhuanlan.zhihu.com/p/540550727