小程序 arraybuffer转图片

项目中小程序遇到大图片生成的需求,需要传递一个参数,然后从服务端获取生成到的长图。微信本身的wx.download()只提供Get请求,不提供POST请求方式下载。所以使用wx.request请求到arraybuffer存入本地文件。

wx.request({

        url: pathUrl,//请求地址

        method: 'POST',//POST方式

        data: params,//附加参数

        responseType: 'arraybuffer',//响应方式

        header: {

          'content-type': 'application/x-www-form-urlencoded'//我们服务器都是form

        },

        success(res) {

          console.log(res.statusCode)

          console.log(res.data)

          let fileManager = wx.getFileSystemManager();//获取文件管理器

          let filePath = wx.env.USER_DATA_PATH + '/inner.jpg';//设置临时路径

          fileManager.writeFile({//获取到的数据写入临时路径

            filePath: filePath,//临时路径

            encoding: 'binary',//编码方式,二进制

            data: res.data,//请求到的数据

            success: function(res) {

              console.log(res)

              console.log(filePath)//打印路径

              wx.previewImage({//图片预览

                urls: [filePath],

              })

              wx.hideLoading();

            },

            fail: function(res) {

              console.log(res)

              wx.hideLoading();

            },

          });

        }

      })

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

推荐阅读更多精彩内容