上周使用 base64 上传图片到OSS中的时候,发现保存的图片出现显示马赛克和图片破损打不开的情况。找了很久也没有出现问题,今天在找答案的时候,偶然间发现有个博主分享的内容完美的解决了我的问题(这里特别感谢这位博主的分享),所以特此记录一下,希望能够帮助遇到同样问题却又苦苦挣扎的朋友们。
关于 base64编码 保存的图片无法正常显示的问题,需要注意两点:
1)上传使用的 base64编码 只需要 “data:image/png;base64,”(这个是指图片的格式,也有可能是“data:image/jpeg;base64,”等)之后的字符串,所以一定要去掉这个前缀。
备注:截取的时候可以使用 base64字符串.substring(base64字符串.indexOf(",") + 1) 方法;
2)如果第一点已经确认写的没问题,但是图片仍然显示有问题(我就是这个问题),那么可以继续往下看:
Postman/Ajax (我是使用Postman的时候出现的问题) 在传 base64编码 的时候,会把 base64编码 中的 "+" 号换成空格,所以需要先将base64中的空格转换回来,再进行保存操作!
下面是使用 base64编码 上传的工具类: