uniapp微信小程序保存base64格式图片的方法

其他教程   发布日期:2023年06月07日   浏览次数:1099

uniapp保存base64格式图片的方法

首先第一要先获取用户的权限

  1. saveAlbum(){//获取权限保存相册
  2. uni.getSetting({//获取用户的当前设置
  3. success:(res)=> {
  4. // console.log("获取权限",res);
  5. if(res.authSetting['scope.writePhotosAlbum']){//验证用户是否授权可以访问相册
  6. this.saveImageToPhotosAlbum();
  7. }else{
  8. uni.authorize({//如果没有授权,向用户发起请求
  9. scope: 'scope.writePhotosAlbum',
  10. success:()=> {
  11. this.saveImageToPhotosAlbum();
  12. },
  13. fail:()=>{
  14. uni.showToast({
  15. title:"请打开保存相册权限,再点击保存相册分享",
  16. icon:"none",
  17. duration:3000
  18. });
  19. setTimeout(()=>{
  20. uni.openSetting({//调起客户端小程序设置界面,让用户开启访问相册
  21. success:(res2)=> {
  22. // console.log(res2.authSetting)
  23. }
  24. });
  25. },3000);
  26. }
  27. })
  28. }
  29. }
  30. })
  31. },

第二步是保存的代码

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

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

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

  1. saveImageToPhotosAlbum(){
  2. let base64=this.maskData.replace(/^data:image\/\w+;BASE64,/, "");//去掉data:image/png;base64,
  3. let filePath=wx.env.USER_DATA_PATH + `/hym_pay${this.$u.guid(8)}_qrcode.png`;
  4. uni.getFileSystemManager().writeFile({
  5. filePath:filePath , //创建一个临时文件名
  6. data: base64, //写入的文本或二进制数据
  7. encoding: 'base64', //写入当前文件的字符编码
  8. success: res => {
  9. uni.saveImageToPhotosAlbum({
  10. filePath: filePath,
  11. success: function(res2) {
  12. uni.showToast({
  13. title: '保存成功,请从相册选择再分享',
  14. icon:"none",
  15. duration:5000
  16. })
  17. },
  18. fail: function(err) {
  19. // console.log(err.errMsg);
  20. }
  21. })
  22. },
  23. fail: err => {
  24. //console.log(err)
  25. }
  26. })
  27. },

以上就是uniapp微信小程序保存base64格式图片的方法的详细内容,更多关于uniapp微信小程序保存base64格式图片的方法的资料请关注九品源码其它相关文章!