在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近使用uniapp涉及到一个上传图片的功能,原本看官方文档api觉得没问题,正常开发, 1. 首先微信端没问题 uni.getFileSystemManager().readFile({ filePath: url, //选择图片返回的相对路径 encoding: "base64", //编码格式 success: (res) => { //成功的回调 const base64 = res.data; }, }); 2. 支付宝小程序出现了问题,真机ios上传图片获取不到base64 官方文档看了很多没用,也不知道是不是自己看漏了,查了很多资料,最后使用canvas解决了: 首先使用 chooseImage获取图片tempFiles uni.chooseImage 获取图片宽高,绘制canvas得到base64 //获取图片的宽高 await my.getImageInfo({ src: imagePath, success: async (res) => { this.imgWidth = res.width / 2.5; this.imgHeight = res.height / 2.5; let canvas = my.createCanvasContext("canvas"); canvas.drawImage(imagePath, 0, 0, this.imgWidth, this.imgHeight); // 1. 绘制图片至canvas // 绘制完成后执行回调 canvas.draw(false, async () => { let base64 = await canvas.toDataURL({ width: this.imgWidth, height: this.imgHeight, quality: 1, }); this.base64 = base64; 这样,支付宝小程序ios真机获取base64就成功啦! |
请发表评论