微信小程序:base64格式图片保存到手机相册

一、需求:后端给过来一个base64格式的图片,将其保存到手机相册

二、实现步骤:

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: () => {
                  wx.showToast({
                    title: "已保存到相册!",
                    icon: 'none',
                    duration: 2000
                })
              }
            })
          }
        }
      })
    }
  })
}
posted @ 2025-05-29 14:28  清和时光  阅读(311)  评论(0)    收藏  举报