uniapp保存base64格式图片的方法首先第一要先获取用户的权限

saveAlbum(){//获取权限保存相册
uni.getSetting({//获取用户的当前设置
success:(res)=> {
// console.log("获取权限",res);
if(res.authSetting['scope.writePhotosAlbum']){//验证用户是否授权可以访问相册
this.saveImageToPhotosAlbum();
}else{
uni.authorize({//如果没有授权,向用户发起请求
scope: 'scope.writePhotosAlbum',
success:()=> {
this.saveImageToPhotosAlbum();
},
fail:()=>{
uni.showToast({
title:"请打开保存相册权限,再点击保存相册分享",
icon:"none",
duration:3000
});
setTimeout(()=>{
uni.openSetting({//调起客户端小程序设置界面,让用户开启访问相册
success:(res2)=> {
// console.log(res2.authSetting)
}
});
},3000);
}
})
}
}
})
},

第二步是保存的代码

代码里面都有清晰的注释可以看

${this.$u.guid(8)}这里我用的是uview的一个自动生成随机八位数唯一字段的js 也可以替换成你需要生成的文件名称 也可以是固定的名称

只不过保存第二次的时候图片名称不会变化

saveImageToPhotosAlbum(){
let base64=this.maskData.replace(/^data:image\/\w+;BASE64,/, "");//去掉data:image/png;base64,
let filePath=wx.env.USER_DATA_PATH + `/hym_pay${this.$u.guid(8)}_qrcode.png`;
uni.getFileSystemManager().writeFile({
filePath:filePath , //创建一个临时文件名
data: base64,   //写入的文本或二进制数据
encoding: 'base64', //写入当前文件的字符编码
success: res => {
uni.saveImageToPhotosAlbum({
filePath: filePath,
success: function(res2) {
uni.showToast({
title: '保存成功,请从相册选择再分享',
icon:"none",
duration:5000
})
},
fail: function(err) {
// console.log(err.errMsg);
}
})
},
fail: err => {
//console.log(err)
}
})
},

最新文章

  1. jQuery实现二级菜单
  2. Ubuntu14.04安装搜狗拼音输入法
  3. 转:关于BFC的初步了解以及常见使用
  4. Git+Github代码管理控制
  5. 重新想象 Windows 8 Store Apps (62) - 通信: Socket TCP, Socket UDP
  6. 安装phpunit
  7. 响应式架构:消息模式Actor实现与Scala、Akka应用集成
  8. Google Map 根据坐标 获取地址信息
  9. [置顶] WebService调用工具(AXIS2)
  10. virtual box ubuntu 与Windows共享文件夹
  11. linux数据库备份脚本
  12. Java多线程模型
  13. LVM快照备份与恢复
  14. linux 下 eclipse 安装
  15. Xcode 9,真机测试,App installation failed
  16. Windows如何后台运行bat文件(没有命令提示符框)
  17. nohup top -p 22452 -b >>jiu.log &
  18. Docker:一个装应用的容器
  19. SQL 查询结果保存为 临时表
  20. Digester库使用总结

热门文章

  1. This request has been blocked; the content must be served over HTTPS.处理方案
  2. Miniconda入门教程
  3. ubuntu查系统信息及系统服务
  4. ffmpeg、数字音频教程、JUCE、std::tuple
  5. 从源码角度解析 Springboot 2.6.2 的启动过程
  6. 【LeetCode】18. 4Sum 四数之和
  7. bugku的一道代码审计基础题:eval
  8. Codeforces1132A——Regular Bracket Sequence(水题)
  9. 七、Uniapp+vue+腾讯IM+腾讯音视频开发仿微信的IM聊天APP,支持各类消息收发,音视频通话,附vue实现源码(已开源)-聊天消息项的实现
  10. 第十一个知识点:DLP,CDH和DDH问题都是什么?