我爱吃苹果
我爱吃苹果
  • 发布:2018-10-16 09:05
  • 更新:2020-07-26 15:53
  • 阅读:5936

uniapp 图片转base64谁有解决?

分类:uni-app

uniapp 图片转base64谁有解决?

2018-10-16 09:05 6 条评论 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

图像转为base64,图像base64保存为文件 可使用插件:http://ext.dcloud.net.cn/plugin?id=123

  • 前端小高

    这个插件我亲测了一遍,应该是不支持在支付宝小程序内调用的。各位使用时需要注意下。

    2021-04-27 16:11

7***@qq.com

7***@qq.com - www.evenfs.cn

使用网络图片比如https://www.xxx.com/xxx.jpg

const toBase64 = (url,rallback) =>{  
    uni.downloadFile({  
        url: url,  
        success(res) {  
            plus.io.resolveLocalFileSystemURL(res.tempFilePath, function(entry) {  
                entry.file(function(e) {  
                    let fileReader = new plus.io.FileReader();  
                    fileReader.onload = function(r){  
                        rallback(r.target.result)  
                    }  
                    fileReader.readAsDataURL(e)  
                })  
            })  
        }  
    })  
}

使用系统路径比如_doc/xxx.jpg或者_www/xxx.jpg

const toBase64 = (path,rallback) =>{  
    plus.io.resolveLocalFileSystemURL(path, function(entry) {  
        entry.file(function(e) {  
            let fileReader = new plus.io.FileReader();  
            fileReader.onload = function(r){  
                rallback(r.target.result)  
            }  
            fileReader.readAsDataURL(e)  
        })  
    })  
}

我在模拟器上试了一下,没问题,不知道别的地方是否可行。安卓模拟器,小程序和IOS系统没有试,有条件的可以试一下。

  • 1***@qq.com

    安卓真机没有问题,ios有问题

    2021-11-15 10:59

  • 易软

    回复 1***@qq.com: ios用系统路径没法吗?

    2023-05-11 17:46

DCloud_UNI_GSQ

DCloud_UNI_GSQ

直接使用地址吧,转base64做什么?

  • 我爱吃苹果 (作者)

    我也想啊。但是我们后端接口这么写的。

    2018-10-16 10:49

  • 我爱吃苹果 (作者)

    直接上传的是base64字符串到后端,后端解析成图片。我也挺郁闷

    2018-10-16 10:50

  • DCloud_UNI_GSQ

    @353788916@qq.com:如果仅考虑app端,可以使用5+的API,用bitmap加载取得base64 。http://www.html5plus.org/doc/zh_cn/nativeobj.html#plus.nativeObj.Bitmap

    2018-10-16 10:51

  • 2***@qq.com

    回复 DCloud_UNI_GSQ: 安卓端下没什么用,取出来base64是残的

    2019-04-29 02:55

  • DCloud_UNI_GSQ

    回复 2***@qq.com: 残的是什么意思?

    2019-05-15 19:56

  • 2***@qq.com

    回复 DCloud_UNI_GSQ: 就是base64代码不齐全 ,后来才郁闷的发现,是HBX打印日志不齐全

    2019-05-21 20:35

  • lioil

    回复 2***@qq.com: 我直接通过


    // 通过读取文件的方式获取base64图片  
    var reader = new plus.io.FileReader();
    reader.onloadend = function (e) {
    console.log('文件读取完成!'+JSON.stringify(e));
    var speech = e.target.result;//base64图片
    self.tempGuestImg = speech;
    self.guestList[guestNo].showPhoto = speech;
    console.log('文件内容'+speech);
    };
    reader.readAsDataURL(res.target);

    获取图片的base64,用uniapp再安卓上面的解决凡是。因为使用bitmap加载取得base64 也是有 BUG。

    2019-07-09 14:54

小殊90

小殊90

uni.chooseImage({  
    count:1,  
    sizeType: ['compressed'],  
    success: function (res) {  
        uni.getFileSystemManager().readFile({  
            filePath: res.tempFilePaths[0], //选择图片返回的相对路径  
            encoding: 'base64', //编码格式  
            success: v=> { //成功的回调  
                 let base64 =  v.data // 返回的是没有 'data:image/jpeg;base64,'头的数据, 有需要可自行追加上                                 
             }  
        })  

    }  
})
  • 易软

    报错?

    2023-05-11 17:33

该问题目前已经被锁定, 无法添加新回复