描述
尝试一 (真机提示有误)
- 使用Taro.chooseImage获取图片路径
- 然后使用下面的方法转成base64,但发现真机调试时会提示“接口请求失败”
- 模拟器获取的图片path是"http://xxx",真机获取的图片path是"wxfile://xxx"
/** 本地图片转Base64*/
async function imgToBase64({ path }) {
try {
const result = await Taro.request({
url: path,
responseType: "arraybuffer"
});
if (result && result.statusCode !== 200) {
Taro.getLogManager().warn("图片获取失败", result);
throw new Error("图片获取失败。");
}
let base64 = Taro.arrayBufferToBase64(result.data);
base64 = "data:image/jpeg;base64," + base64;
return base64;
} catch (error) {
console.warn("=> utilssearch.ts error imgToBase64", error);
throw error;
}
}
尝试二(可行)
/**
* 本地图片转Base64
* @param param.path 文件路径
* @returns Base64图片字符串
*/
function imgToBase64({ path }) {
let res = "";
try {
const base64 = Taro.getFileSystemManager().readFileSync(path, "base64");
if (base64) {
res = "data:image/jpeg;base64," + base64;
}
} catch (error) {
console.warn("=> utilssearch.ts error imgToBase64", error);
throw error;
} finally {
return res;
}
}
Taro 本地图片上传转Base64