收藏
回答

大神们求救 我生成小程序码一直乱码

生成小程序二维码一直不行   一直是乱码 再网上看 说什么已经时二进制流了 直接写文件里就可以了 或者直接转base64 然后在image标签里加上 data:image/png;base64这个就行  可是我用base64 = wx.arrayBufferToBase64(arrayBuffer) 放在标签里 还是不行呀   然后我就在王网上看 可以生成本地文件 然后直接写进去 我试过了  还是不行   我用的是node发的请求  本想用java 一想还要用服务器 还是算了 直接用nodejs把  刚刚接触nodejs 在网上找的发送请的例子  也不知道对不对   返回来的数据就是乱码


****这里获得access_token 这个就不过多说了  

const rp = require('request-promise');


var img = await rp({

            method: 'post',

            uri: 'https://api.weixin.qq.com/wxa/getwxacode?access_token=' + res,

            body: {

                //access_token: res,

                path: "/pages/index/index"

            },//参数

            headers: {

                //'content-type': 'application/json'

                'Content-Type': 'Content-type: image/jpg'

            },//请求头

            json: true  //是否json数据

        }).then((bodys) => {

                return bodys;

}).catch(err => {

console.log("这里报错了")

return err;

})

return img;


这里是我调用云函数的方法   返回来写文件 看文档 给开发者提供了一个路径,${wx.env.USER_DATA_PATH}  可是这个路径我想不是本地的 是不是要转成缓存的 image 标签才能用 我就用下载到缓存  形成临时文件 可是还是不显示

wx.cloud.callFunction({ //加载归属车型

    name: 'accessToken',

    data: {

        appSectet: app.globalData.appSectet

    }

}).then(res => {

    console.log(res.result)

    wx.getFileSystemManager().writeFile({

        filePath: `${wx.env.USER_DATA_PATH}/image.png`,

        data: res.result,

        success: function (res) {

            console.log(res)

                wx.downloadFile({

                    url: `${wx.env.USER_DATA_PATH}/image.png`, //仅为示例,并非真实的资源

                    success(res) {

                            console.log(res)

                        const filePath = res.tempFilePath

                        thisData.setData({

                            captchaImage1: res.tempFilePath

                        })

                }

        })

}

})


最后一次编辑于  2018-11-18  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

5 个回答

  • 满眼星辰
    满眼星辰
    04-15

    我也是头疼于这块东西,各种找不到答案,只能生成的buffer传到

    const upload = await cloud.uploadFile({
    cloudPath: 'demo5561.jpg',
    fileContent: buffer,
    })

    云服务器上,然而此方法又不好,所以 楼主能否分享下 云服务函数 到小程序生成小程序码的 代码,感激中...

    04-15
    赞同
    回复
  • 猫猫
    猫猫
    2018-12-26

    axios的依赖还要另行安装的是吗

    2018-12-26
    赞同
    回复
  • 唐全小程序
    唐全小程序
    2018-11-21


    encoding: null,

    json: true


    2018-11-21
    赞同
    回复
  • 深藏功与名
    深藏功与名
    2018-11-20

    你生成有问题

    2018-11-20
    赞同
    回复 9
    • I Do
      I Do
      2018-11-20

      解决了  是我的生成有问题  我用nodejs 里的 axios 这个写了请求  设置了一个responseType: 'arraybuffer'这个  果断可以了  



      2018-11-20
      回复
    • 深藏功与名
      深藏功与名
      2018-11-20回复I Do

      2018-11-20
      回复
    • 深藏功与名
      深藏功与名
      2018-11-20回复I Do

      云小程序数据是在服务器上设定就可以了?

      2018-11-20
      回复
    • I Do
      I Do
      2018-11-20回复深藏功与名

      我没有在自己的服务器上生成  我是在云函数里生成的  直接写的是nodejs

      2018-11-20
      回复
    • 舒
      2018-12-14回复I Do

      兄弟 完整的能发给我看看吗? 谢~~

      2018-12-14
      回复
    查看更多(4)
  • จุ๊บ
    จุ๊บ
    2018-11-18

    你要先在js里面转好base64,然后再渲染到wxml里面。你在wxml标签 运行js操作,可能吗?难道html标签 可以执行js代码?

    2018-11-18
    赞同
    回复 7
    • I Do
      I Do
      2018-11-18

      我先在js  转成base64   然后let base64 = wx.arrayBufferToBase64(res.result)

      setData({

                      captchaImage1: base64   //这里已经走过wx.arrayBufferToBase64(res.result)

                    })

      wxml <image src="data:image/png;base64,{{captchaImage1}}"></image >

      2018-11-18
      回复
    • จุ๊บ
      จุ๊บ
      2018-11-18回复I Do

      你可以在setData里面 就把src 拼接好,然后渲染在wxml试试。

      2018-11-18
      回复
    • I Do
      I Do
      2018-11-18回复จุ๊บ


      数据都没有了  !!!是不是我的nodejs 写错了????!!

      2018-11-18
      回复
    • จุ๊บ
      จุ๊บ
      2018-11-19回复I Do

      我生成的是这样的

      但是我是后端生成之后,将它写入图片了

      2018-11-19
      回复
    • I Do
      I Do
      2018-11-19回复จุ๊บ

      我这个没有后台  请求的东西我都放在node上 然后放在云函数里了  这样子剩下了一部分的资源 反正也没有几个请求

      然后我昨天想 把这些乱码放到图片文件是不是可以了  然后我就把返回的乱码 以二进制的形式放到了七牛上 生成了图片 结果我打开七牛一看还是不行  我看七牛上一直显示点点点 我就把文件下载下来了  打开一看  不行




      2018-11-19
      回复
    查看更多(2)