base64图片保存

2023/9/7
  1. 指定图片的临时保存路径 const path = ${wx.env.USER_DATA_PATH}/image.png``,这个路径位于小程序的用户数据目录下,并设置图片的文件名为 image.png。

  2. 获取了小程序的文件系统管理器对象 fsm,以便进行文件操作。

  3. 使用 fsm.writeFile() 函数将Base64格式的图片数据写入到临时目录中。通过 base64.replace(/^data:image/\w+;base64,/, '') 去除了Base64数据头部的描述信息,只保留实际的Base64编码数据。

  4. 写入成功后,我们弹出一个模态对话框,询问用户是否要保存图片到手机相册。如果用户确认保存,就会触发 wx.saveImageToPhotosAlbum() 函数,将临时目录下的图片保存至手机相册中。

/** base64图片保存 */
base64ImageHandle(base64) {
  // 指定图片的临时路径
  const path = `${wx.env.USER_DATA_PATH}/image.png`
  // 获取小程序的文件系统
  const fsm = wx.getFileSystemManager()
  // 把arraybuffer数据写入到临时目录中
  fsm.writeFile({
    filePath: path,
    data: base64.replace(/^data:image\/\w+;base64,/, ''),
    encoding: 'base64',
    success: () => {
      wx.showModal({
        title: '保存图片',
        content: '保存图片到手机相册?',
        confirmColor: '#be3a34',
        success: (result) => {
          if (result.confirm) {
            // 把临时路径下的图片,保存至相册
            wx.saveImageToPhotosAlbum({
              filePath: path,
              success: () => {
                CommonUtils.showToast('保存成功')
              }
            })
          }
        }
      })
    }
  })
},