小程序保存base64格式图片

首先需要声明一点,base64格式的比较特殊,有时后台只能传输base64的图片,这种情况下,支付宝小程序downloadFile是不支持做保存图片到本地的,而微信小程序可以实现;
以下就来说说微信小程序实现保存base64图片的步骤:

downloadQR() {
    const that = this;
    wx.getSetting({ //获取权限
      success(res) {
        if (res.authSetting["scope.writePhotosAlbum"]) {
          that.download(‘需要保存的base64码’);
        } else {
          wx.authorize({
            scope: "scope.writePhotosAlbum",
            success() {
              that.download(‘需要保存的base64码’);
            },
            fail(err) {
              console.log(err);
            }
          });
        }
      }
    });
  },
  download(data) {
    const fileManager = wx.getFileSystemManager();

    const filePath =wx.env.USER_DATA_PATH +(this.data.serialNum ? "/lightId" + this.data.serialNum + ".png": "/lightIdQRCode.png");
    //这块是定义图片的名称,可自定义其他

    let self=this;
    fileManager.writeFile({
      filePath: filePath,
      data: data.slice(22),
      encoding: "base64",
      success: res => {
        wx.saveImageToPhotosAlbum({
          filePath: filePath,
          success: function (res) {
            //保存成功
            util.showToast(self.data.txt.saveSuccess);
          },
          fail: function (err) {
             //保存失败
            util.showToast(self.data.txt.saveFail);
            console.log('downQrCode:',err);
          }
        });
      },
      fail: err => {
        util.showToast(self.data.txt.saveFail);
        console.log('downQrCode:',err);
      }
    });
  },

小程序做保存图片这块,支付宝和微信有很大区别,如果同时有两端都要做这个功能,可能就得做兼容处理了,
微信小程序保存图片使用wx.saveImageToPhotosAlbum,官网明确说明到不支持网络路径;


image.png

而支付宝小程序my.saveImage则是只支持网络路径


image.png
image.png

同时做的时候也是挺为难的,需要与后端协调好

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容