H5图片压缩转Base64上传阿里云并处理iOS拍照旋转问题

h5 的图片上传场景真不少,尤其移动端拍照后直接上传的需求常见。这个方案挺实用:图片先压缩,再转成 Base64,上传到阿里云,顺手还了 iOS 相机照片自动旋转 90 度的老大难问题。

压缩和转 Base64 是关键。压缩能减小文件体积,上传速度快不少;Base64 编码呢,好处是你可以直接传字符串,接口调起来也方便,尤其是一些后端要求就是传 Base64 的情况。

iOS 拍照旋转的问题蛮坑的,上传后发现照片歪着,体验太差。这里得比较巧,读取了图片的EXIF信息,再用canvas旋转回来,效果还不错。代码量不多,逻辑也清晰,维护起来不头疼。

上传到阿里云这块,是直接用oss-js-sdk,只要配置好accessKeybucket这些参数,上传挺稳。响应也快,图片一上去就能用URL访问了,蛮适合即拍即传的业务。

你要是正好在做 H5 上传,或者被 iOS 照片旋转问题烦过,建议试试看。如果你想搞清楚 Base64、压缩、上传的整个链条,下面几个链接可以一起看看,挺全的:

txt 文件大小:4.88KB