Taro 本地图片上传转Base64

描述

  • 使用Taro将本地图片转成base64格式

尝试一 (真机提示有误)

  1. 使用Taro.chooseImage获取图片路径
  2. 然后使用下面的方法转成base64,但发现真机调试时会提示“接口请求失败”
  3. 模拟器获取的图片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

上一篇:Servlet 直接返回web前端(代码库)


下一篇:php class