最近用uni-app开发了一个小程序,其中有一个功能是上传图片,这次是一个已有的项目,后端要求提交base64给他。小程序提交base64。。。
但是还是得按照他的来,根据以往h5开发经验我的思路是
- 先获取file
- file转base64
- base64利用canvas生成小图
- 再利用canvas转成小的base64
但是实际执行的过程中困难重重,原因是小程序的环境跟h5的环境不太一样,很多方法不能直接使用。
还好找的了一个插件helangCompress 可以帮我把图片压缩
后面就是把图片再转化为base64提交了,获取到base64提交显示成功了,但是真正的坑才刚到来。我们拿出手机来进行真机测试的时候发现点击上传图片后就死机了没有反应。
通过一段段代码注释调试后发现是将base64(170k+)赋值给this.xxx的时候卡死了,WHAT?这就不行了吗?虽然很无语,但是还是得解决它。
于是我想了个折中的办法,既然不能直接赋值,那我显示的时候使用图片的url,将Base64存到本地缓存里,提交的时候再从缓存中读取提交,这样就解决卡死的问题了。