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) { } });