收藏
回答

wx.base64ToArrayBuffer废弃了有什么方法替代吗?

回答关注问题邀请回答
收藏

8 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2023-03-10

    https://www.npmjs.com/package/base64-arraybuffer

    2023-03-10
    有用 2
    回复
  • Z
    Z
    2021-11-16

    toString(’‘base64’)


    2021-11-16
    有用 3
    回复 1
    • 大辣条
      大辣条
      2021-11-17
      害、放弃了
      2021-11-17
      3
      回复
  • Mr.Zhao
    Mr.Zhao
    发表于移动端
    2021-11-16

    报啥错?

    2021-11-16
    有用 1
    回复 2
    • 大辣条
      大辣条
      2021-11-17
      我已经改了,搞半天没有搞好!就说什么window.xxx不存在什么。然后看工具提示废弃,就直接放弃了
      2021-11-17
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-11-17回复大辣条
      不知道你咋搞的
      2021-11-17
      回复
  • ~修心养性~
    ~修心养性~
    发表于移动端
    09-13
    经区 郭忠浩17865065051经区 郭忠浩17865065051
    09-13
    有用
    回复
  • 老李
    老李
    发表于移动端
    06-25
    汁一
    06-25
    有用
    回复
  • 中
    2022-09-26

    不维护还能正常使用,只是有bug就不维护了,可能有些base64有头部要去掉

    base64 = base64.replace(/^data:image\/\w+;base64,/, "");
    let arrayBuffer = wx.base64ToArrayBuffer(base64);
    
    2022-09-26
    有用
    回复 2
    • 王横
      王横
      2023-12-14
      2023-12-14
      回复
    • 浮生若梦
      浮生若梦
      发表于移动端
      05-30回复王横
      05-30
      回复
  • Junson
    Junson
    2022-06-16
    function b64ToUint6 (nChr) {
    
      return nChr > 64 && nChr < 91 ?
          nChr - 65
        : nChr > 96 && nChr < 123 ?
          nChr - 71
        : nChr > 47 && nChr < 58 ?
          nChr + 4
        : nChr === 43 ?
          62
        : nChr === 47 ?
          63
        :
          0;
    
    }
    
    function base64ToArrayBuffer(sBase64, nBlockSize) {
    
      var
        sB64Enc = sBase64.replace(/[^A-Za-z0-9\+\/]/g, ""), nInLen = sB64Enc.length,
        nOutLen = nBlockSize ? Math.ceil((nInLen * 3 + 1 >>> 2) / nBlockSize) * nBlockSize : nInLen * 3 + 1 >>> 2, aBytes = new Uint8Array(nOutLen);
    
      for (var nMod3, nMod4, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {
        nMod4 = nInIdx & 3;
        nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;
        if (nMod4 === 3 || nInLen - nInIdx === 1) {
          for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {
            aBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;
          }
          nUint24 = 0;
        }
      }
    
      return aBytes;
    }
    
    
    
    
    2022-06-16
    有用
    回复 1
    • kkkk
      kkkk
      2022-10-29
      请问base64ToArrayBuffer中的nBlockSize是表示什么呢
      2022-10-29
      回复
  • 郑钱花
    郑钱花
    2021-11-16

    停止维护 !== 废弃吧,你试试还不能不能用呢

    2021-11-16
    有用
    回复 1
    • 大辣条
      大辣条
      2021-11-16
      试了,不能使用,报错,都放弃了!
      2021-11-16
      回复
登录 后发表内容