收藏
回答

wx.request返回的是图片的二进制数据,如何用image控件将其显示出来?

同标题

最后一次编辑于  2018-06-06
回答关注问题邀请回答
收藏

4 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2018-06-06

    你好,还有一个办法就是可以让后端直接返回图片链接给你哈,(#^.^#)


    2018-06-06
    赞同
    回复 1
    • 风云
      风云
      2018-06-09

      也是,其实,也可能我根本就不想在服务器端保存文件,只是显示一个图片而已~~~

      2018-06-09
      回复
  • Mr.古月℡
    Mr.古月℡
    02-15

    wx.request里面把responseType设成arraybuffer,然后成功之后wx.arrayBufferToBase64(res.data)转成base64。

    getValidateCode:function(){

        var that = this;

        wx.request({

            url: validateCodePath,

            method:'get',

            responseType: 'arraybuffer',

            success:function(res){

                const base64 = wx.arrayBufferToBase64(res.data);

                that.setData({

                    validateCodePath: "data:image/png;base64," + base64

                });

            }

        })

    }


    02-15
    赞同
    回复
  • 风云
    风云
    2018-06-06

    不行啊,发送的是获取小程序码的请求,我无法控制啊

    wx.request({ //获取小程序码
              url: "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + getApp().globalData.access_token, //仅为示例,并非真实的接口地址
              header: {
                'content-type': 'application/json' // 默认值
              },
              data:{
                scene: json.content,
                page:"pages/news/detial",
                width:430
              },
              method:"POST",
              success: function (res) {
                var json = res.data;//获取的html文本信息
                console.log('小程序码:')
                console.log(res);
                // that.setData({img: json})
                wx.hideNavigationBarLoading();
              }
            })


    2018-06-06
    赞同
    回复 1
    • 风云
      风云
      2018-06-09

      其实wx.request( )返回的data图片数据本身就是错误,不管访问哪里的图片,都是错误的,不管他们承认不承认,


      所以转为base64来显示就是一种奢想了,只能在服务器端请求了~~~

      2018-06-09
      回复
  • 解析
    解析
    2018-06-06

    var that=this;

    wx.downloadFile({

        url:'**********'

        success:function(e){

            that.setData({

                    imgPath:e.tempFilePath

            });

        }

    })


    <image src='{{imgPaht}}' />


    这样不行吗?

    2018-06-06
    赞同
    回复 1
    • 风云
      风云
      2018-06-09

      不是说这样不行,是说他wx.request( )有bug,当返回是图片时,其实应该是他们封装时出错了~~~

      2018-06-09
      回复