wx.chooseImage如何知道选择或者拍摄的图片大小

目前在做的一个项目是使用微信的jssdk选择或者拍摄图片然后上传到服务器,但是要求需要用户上传的图片尺寸不能超过5M,现在不知道如何通过微信的jssdk接口,知道图片的尺寸大小?
请求大伙支援!

阅读 6.6k
4 个回答

微信选图片的时候可以设置选择压缩过的图上传

一般建议直接用原生的<input type='file'>,微信那个接口其实挺难用的,还得先上传到微信那边再拉下来自己服务器,不如直接在前端用canvas压缩下然后直接传后台就行了,主要是去掉EXIF信息和统一格式。压缩可以用现成的库,可以避免踩判断照片方向的坑。

上传的这一步上控制不了的,因为你上传的图片是先到微信的服务器的,然后微信服务器返回你一个 serverIdmedia_id,你在拿这个 serverId 去获取刚刚上传临时图片素材,这个时候是可以获取图片的大小的,在根据这个大小去提示用户的

这里我曾经做过两个场景
第一,直接在网页上传,因为安卓端不能多选文件上传,所以使用微信上传,这样就可以多选了,但是因为只有你提交了,服务端才会真正的获取到图片,这样就会有个滞后的效果,体验极差。当然也有一种就是你选择图片后,ajax直接传上传,再将服务端返回的图片地址置入表单,这样虽然不存在滞后,但是是否有浪费流量的嫌疑。
第二种就是让用户在公众号窗口内发送图片,然后获取图片,这样你就可以实时检测,然后返回提醒,应该算是一种完美的解决方案吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题