收藏
回答

拍照图片base64转换问题

问题模块
API和组件

请问拍照后获取到图片路径怎么转换成base64格式的内容呢?


目前我在小程序开发过程中有如下的一个应用场景需要转base64,我们一个业务流程需要做静态图片的人脸识别,用户拍照后需要转成base64传到后台,我按照官方文档的做法做了如下处理,但是在开发工具模拟器上执行没有问题,预览的时候就不行了。具体代码如下:


最后一次编辑于  2017-08-16  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

5 个回答

  • 彬古吉
    彬古吉
    2017-08-16
    var xhr = new XMLHttpRequest();
            xhr.responseType = 'blob';
            xhr.onload = function () {
              var reader = new FileReader();
              reader.onloadend = function () {
                callback(reader.result);
              }
              reader.readAsDataURL(xhr.response);
            };
            xhr.open('GET', url);
            xhr.send();

    这是我之前的一个项目的代码,你可以在你的项目里面多console,看看具体数据内容。

    var fileExt = filePath.substring(filePath.lastIndexOf('.') + 1);
              toDataUrl(filePath, function (base64Img) {
                var options = {
                  type: fileExt,
                  fileContent: base64Img
                };
                var uploadCallback = function (data) {
                  data.results.fileLocalPath = filePath;
                  def.resolve(data);
                };
                service.uploadImg(options, uploadCallback);
              });



    2017-08-16
    赞同
    回复
  • KingKong
    KingKong
    2017-08-16

    谢谢你的解答,但你的代码并没有给出一个base64转换的内容。

    2017-08-16
    赞同
    回复
  • 曹小科
    曹小科
    2017-08-31

    LZ有解决这个问题吗?

    2017-08-31
    赞同
    回复
  • KingKong
    KingKong
    2017-08-31

    小程序目前还不支持图片base64内部转换,只能自己后台专门写一个图片base64转换的Api.

    2017-08-31
    赞同
    回复
  • 〰Astorm
    〰Astorm
    2018-01-24

    能执行,但不能预览,是因为:实际上你这个写法是将那个图片路径字符串转码转成了base64。。。不行你把得出来的base64去在线解码一下,你会发现还是那个图片临时路径。。。所以不显示是正常的。


    另外,你的问题我同问

    2018-01-24
    赞同
    回复