微信小程序调用 wx.getFileSystemManager().writeFile({...})将base64转本地临时图片进行canvas绘制踩坑

有可能后台有返回前面的data:image;base64,   由于多了这个,导致方法调用失败,不报错,就是成功。去掉问题就解决了,下面是方法,附上一段去掉的正则表达式

代码: 

base64src: function (base64data, callback) {

  var reg = new RegExp('^data:image/png;base64,', 'g');

     base64data = base64data.replace(reg, '');

    let filePath = `${wx.env.USER_DATA_PATH}/$111111`; 

    wx.getFileSystemManager().writeFile({

      filePath: filePath,

      data: wx.base64ToArrayBuffer(base64data),

      encoding: 'binary',

      success: () => { 

        console.log('写入成功, 路径: ', filePath);

        callback(filePath);

        // resolve(filePath); 

      },

      fail: err => {

        console.log('写入失败:', err);

      },

    });

  },

要用promise的自己用promise转同步

你可能感兴趣的:(微信小程序调用 wx.getFileSystemManager().writeFile({...})将base64转本地临时图片进行canvas绘制踩坑)