H5图片压缩转Base64上传阿里云并处理iOS拍照旋转问题
h5 的图片上传场景真不少,尤其移动端拍照后直接上传的需求常见。这个方案挺实用:图片先压缩,再转成 Base64,上传到阿里云,顺手还了 iOS 相机照片自动旋转 90 度的老大难问题。
压缩和转 Base64 是关键。压缩能减小文件体积,上传速度快不少;Base64 编码呢,好处是你可以直接传字符串,接口调起来也方便,尤其是一些后端要求就是传 Base64 的情况。
iOS 拍照旋转的问题蛮坑的,上传后发现照片歪着,体验太差。这里得比较巧,读取了图片的EXIF
信息,再用canvas
旋转回来,效果还不错。代码量不多,逻辑也清晰,维护起来不头疼。
上传到阿里云这块,是直接用oss-js-sdk
,只要配置好accessKey
、bucket
这些参数,上传挺稳。响应也快,图片一上去就能用URL
访问了,蛮适合即拍即传的业务。
你要是正好在做 H5 上传,或者被 iOS 照片旋转问题烦过,建议试试看。如果你想搞清楚 Base64、压缩、上传的整个链条,下面几个链接可以一起看看,挺全的:
4.88KB
文件大小:
评论区