话不多说直接上代码
//使用
this.getFileByTmpPath(tmp_path).then(res=>{
//url、file、width、height
console.log(res)
})
//函数
function getFileByTmpPath(tempImagePath) {
return new Promise((resolve, reject) => {
wx.getImageInfo({
src: tempImagePath,
complete: infoRes => {
if (infoRes.errMsg == 'getImageInfo:ok') {
wx.getFileSystemManager().readFile({
filePath: infoRes.path,
encoding: 'base64',
complete: fileRes => {
if (fileRes.errMsg == 'readFile:ok') {
const dataUrl = `data:image/${infoRes.type};base64,${fileRes.data}`;
const arr = dataUrl.split(',');
const bstr = arr[1].replace(/[\r\n\s]/g, '');
const file = wx.base64ToArrayBuffer(bstr);
let res ={
url:dataUrl,
file:file,
width:infoRes.width,
height:infoRes.height,
}
resolve(res);
} else {
resolve();
}
}
});
} else {
resolve();
}
}
});
});
}