• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

问题:base64图片不能直接用wx.saveImageToPhotosAlbum保存到手机相册

解决:

先用fs.writeFile写入本地文件,再wx.saveImageToPhotosAlbum保存到手机相册

saveimg:function(){
    var _this=this
    //获取文件管理器对象
    const fs = wx.getFileSystemManager()
    
    //文件保存路径
    const Imgpath = wx.env.USER_DATA_PATH + \'/qrcodeImg\' + \'.png\'
    //_this.data.imgsrc   base64图片文件
    let imageSrc = _this.data.imgsrc.replace(/^data:image\/\w+;base64,/, \'\')
    
    //写入本地文件
    fs.writeFile({
      filePath: Imgpath,
      data: imageSrc,
      encoding: \'base64\',
      success (res) {
        console.log(res)
        
        //保存到手机相册
        wx.saveImageToPhotosAlbum({
          filePath: Imgpath,
          success(res) {
            console.log(res)
            wx.showToast({
              title: \'保存成功\',
              icon: \'success\'
            })
          },
          fail:function(err){
            console.log("失败了")
            console.log(err)
          }
        })
        
        
      }
    })
  },

存储的话上面就可以实现了,下面是如果需要,删除文件的方法

项目中有遇到过,因为接口返回的画海报的图片是base64的图片,需要先存为本地文件才可以画图,canvas画完海报素材还在临时文件中,不一会就满了,这时候就需要将临时文件中不需要的文件删除了,就用到如下方法:

Object wx.env

小程序环境变量对象

wx.env.USER_DATA_PATH

文件系统中的用户目录路径

let fs = wx.getFileSystemManager()
//获取文件 Stats 对象
fs.stat({
  // `${}` 是es6中新增的字符串方法
  // ` 返单引号
  path: `${wx.env.USER_DATA_PATH}`,
  recursive: true,
  success: res => {
    //获取到stats对象
    
    //Object.keys(要返回其枚举自身属性的对象)  返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致
    Object.keys(res.stats).forEach(path => {
      var stats = res.stats[path]
      
      //删除指定路径的文件
        fs.unlink({
          filePath:`${wx.env.USER_DATA_PATH}`+stats.path,
          success:function(res){
            //删除成功
          },
          fail:function(res){
            //删除失败
          }
        })
        
    })
  },
fail:res=>{
//失败
}
})

获取的stats对象:

Object.keys(res.stats):


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
开发小程序注意的一些问题发布时间:2022-07-18
下一篇:
微信小程序实践 第一个项目发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap