小程序图片转base64调用setdata报错,如何解决?

微信小程序在上传图片这一块,前端图片上传上去以后需要转成base64的格式传给后端,但是转成base64以后数据太长,调用setdata就会报错按网上看到的说法,我把数据切成一段一段少于1024的长度一个就行,但是实际上传也不行不知道是哪里出了问题,这种有什么更好的解决方案吗

img

                        let copyright_dict = {}
                        for (let i = 0; i < that.data.group_array.copyright_imgs.length; i++) {
                            let copyright_arr = {};
                            that.data.group_array.back_copyright_imgs["copyright_arr" + i] = []
                            // 控制长度
                            let n = 1000;
                            // 转base64
                            var base64_str = 'data:image/jpeg;base64,' + wx.getFileSystemManager().readFileSync(that.data.group_array.copyright_imgs[i], "base64");

                            for (var j = 0, l = base64_str.length; j < l / n; j++){
                                var a = base64_str.slice(n * j, n * (j + 1));
                                that.data.group_array.back_copyright_imgs["copyright_arr" + i].push(a)
                                that.setData({
                                    "group_array.back_copyright_imgs": that.data.group_array.back_copyright_imgs
                                })
                            }
              
                        }

转本地图片再赋值


wx.chooseImage({
      success: res => {
      wx.getFileSystemManager().readFile({
          filePath: res.tempFilePaths[0], //选择图片返回的相对路径
          encoding: 'base64', //编码格式
          success: res => { //成功的回调
            console.log('data:image/png;base64,' + res.data)
          }
        })

        //以下两行注释的是同步方法
            //let base64 = wx.getFileSystemManager().readFileSync(res.tempFilePaths[0], 'base64') 
        //console.log(base64)
      }
    })

img