微信小程序base64图片与临时路径互相转换

1、base64图片转临时路径

javascript 复制代码
/**
   * 将base64图片转临时路径
   * @param {*} dataurl
   * @param {*} filename
   * @returns
   */
  base64ImgToFile(dataurl, filename = "file") {
    const base64 = dataurl; // base64码
    const time = new Date().getTime();
    const imgPath = wx.env.USER_DATA_PATH + "/poster" + time + "share" + ".png";
    //如果图片字符串不含要清空的前缀,可以不执行下行代码.**假如不清除,真机会报错**
    const imageData = base64.replace(/^data:image\/\w+;base64,/, "");
    const fs = wx.getFileSystemManager();
    fs.writeFileSync(imgPath, imageData, "base64");
    fs.close();
    return imgPath;
  },

2、临时路径转base64

javascript 复制代码
  fileToBase64Img(tempFilePath) {
    wx.getFileSystemManager().readFile({
      // 读取本地文件内容
      filePath: tempFilePath,
      encoding: "base64", //编码格式
      success(res) {
        let base64 = "data:image/png;base64," + res.data;
        return base64;
      },
    });
  },

注意:小程序保存base64出错,Unhandled promise rejection Error: writeFileSync:fail base64 encode error

解决方式,清除data:image/png;base64 前缀

如:base64.replace(/^data:image\/\w+;base64,/, "")

相关推荐
paterWang17 分钟前
小程序-基于java+SSM+Vue的模拟考试管理系统设计与实现
java·vue.js·小程序
JewWang2 小时前
与 Cursor AI 对话编程:2小时开发报修维修微信小程序
微信小程序·ai编程·报修
!win !2 小时前
WebP图片使用踩坑
小程序·uniapp·webp
橘子海全栈攻城狮2 小时前
[源码+调试+讲解]微信小程序的成都美食分享系统springboot
开发语言·spring boot·后端·微信小程序·小程序·美食
Jiaberrr2 小时前
微信小程序中 Echarts 的巧妙运用
前端·javascript·vue.js·微信小程序·echarts
雯0609~6 小时前
微信小程序:实现节点进度条的效果;正在完成的节点有动态循环效果;横向,纵向排列
微信小程序·小程序·notepad++
懒洋洋大魔王6 小时前
uni-app创建微信小程序
微信小程序·小程序·uni-app
m0_512744646 小时前
微信小程序webview和小程序通讯
微信小程序·小程序
我是唐赢6 小时前
微信小程序显示进度条showLoading,关闭进度条hideLoading,消息提示showToast,弹出窗showModal
微信小程序·小程序