uinapp 中上传的文件转成base64

测试了多种方法,最后用了image-tools 组件转成功,image-tools 网上有下载就不提供了,具体的使用方法是引入下载的image-tools。

    import {
        base64ToPath,//base64码转图片
        pathToBase64
        } from '@/components/image-tools/index.js'

提供了2中方法,base64ToPath 是base64编码字符串转图片文件;pathToBase64 是图片文件转base64编码字符串;

uni.chooseImage({
                    count: 1, //默认9
                    sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有。
                    sourceType: ['album', 'camera'], //从相册选择。
                    success(res) {
                        console.log("res-----------------------------------------------", res);

                        // res.tempFilePaths[0] 表示调用手机选择的文件路径
                        pathToBase64(res.tempFilePaths[0])
                            .then(base64 => {
                                console.log(base64.length)
                                let base64str= base64.substring(base64.indexOf(",")+1)
                   //base64str 表示去除头部的base64字符串 let opts
= { url: 'http://localhost/sys/fileex/webcard/shibie64jo', method: 'post' }; let param = { "strb64":base64str, "zjtype":"103", "imgtype":"jpg" }; _this.httpRequestex(opts, param).then(res => { console.log(res) if(res.data.success){ let dataJSONstr = JSON.parse(res.data.zjinfo) console.log(res.data.zjinfo) let resdata = dataJSONstr.data.cardsinfo.card.item let imgurl = res.data.url for (var i = 0; i < resdata.length; i++) { var value = resdata[i].content; var key = resdata[i].desc; console.log('key=' + key + ' value=' + value) if (key != '保留') { _this.reportData.push(resdata[i]) } } } }) }) .catch(error => { console.log('res'+error) console.error(error) }) // 都可以用 const arrayBuffer = new Uint8Array(res.tempFilePaths[0]); //先将本地图片路径转换成array类型 const base64Img = uni.arrayBufferToBase64(arrayBuffer); //再转换成base64类型 console.log(base64Img.length) //成品就在这里了 }, fail(err) { } });

 

posted @ 2022-02-16 11:12  蓬鹏  阅读(1763)  评论(0编辑  收藏  举报