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

// 保存图片
let settingWritePhotosAlbum = false;
export const saveImg = function(url, callback ) {
  //获取文件管理器对象
  const fs = wx.getFileSystemManager()
  //文件保存路径
  const Imgpath = wx.env.USER_DATA_PATH + '/qrcodeImg' + '.png'
  //base64图片文件
  let imageSrc = url.replace(/^data:image\/\w+;base64,/, '')

  //写入本地文件
  fs.writeFile({
    filePath: Imgpath,
    data: imageSrc,
    encoding: 'base64',
    success(res) {
      console.log(res)
      if (url) {
		    if (settingWritePhotosAlbum) {
		    	wx.getSetting({
		    		success: res => {
		    			if (res.authSetting['scope.writePhotosAlbum']) {
                wx.saveImageToPhotosAlbum({
                  filePath: Imgpath,
                  success: () => {
                      wx.hideLoading();
                      callback && callback();
                      wx.showToast({
                          title: '保存成功'
                      });
                  },
                  fail(e) {
                      wx.hideLoading();
                      wx.showToast({
                          title: '下载失败,错误原因:' + e.errMsg,
                          icon: "none"
                      });
                  }
                });
		    			} else {
		    				wx.showModal({
		    					title: '提示',
		    					content: '请先在设置页面打开“保存相册”使用权限',
		    					confirmText: '去设置',
		    					cancelText: '算了',
		    					success: data => {
		    						if (data.confirm) {
		    							wx.openSetting();
		    						}
		    					}
		    				});
		    			}
		    		}
		    	});
		    } else {
		    	settingWritePhotosAlbum = true;
		    	wx.authorize({
		    		scope: 'scope.writePhotosAlbum',
		    		success: () => {
              wx.saveImageToPhotosAlbum({
                  filePath: Imgpath,
                  success: () => {
                      wx.hideLoading();
                      callback && callback();
                      wx.showToast({
                          title: '保存成功'
                      });
                  },
                  fail(e) {
                      wx.hideLoading();
                      wx.showToast({
                          title: '下载失败,错误原因:' + e.errMsg,
                          icon: "none"
                      });
                  }
              });
		    		}
		    	});
		    }
	    } else {
	    	wx.showToast({
	    		title: '未找到图片',
	    		icon: 'none'
	    	});
	    }
    }
  }) 
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值