关于微信小程序iOS端图片上传的睿智问题——困扰了我好久,令人窒息


总的来说是一个图片类型签名的问题

但是怎么会这样呢?让我们来看微信小程序是如何给我们返回图片的类型信息的————wx.getImageInfo()的res.type————貌似对jpeg类型的文件只会返回jpeg,而iOS端用wx.uploadFile()上传图片时,文件传递的类型是————'image/jpg'(???)

而我们如果请求签名时直接用'image/'+res.type,那么签名的文件类型和实际上传的文件类型就不一样了,再加上微信小程序至今没有在网络抓包工具中将wx.uploadFile()和wx.downloadFile()的全部内容完整展示出来,以至于我很久以来都认为是没有发送formData导致的问题,在这方面纠结了好久好久...

目前来看如果用Ucloud的对象存储做上传后端的话,都有可能遇到这样的问题,毕竟类型检验在实际使用中还是有需求的...

解决方法大概是签名时不传递content_type,或者对ios端进行特别处理,res.type == 'jpeg'时,使用'jpg'代替其类型。

不知道这个问题是和iOS有关还是和微信本身有关()

据我观察,完成上传后,对象存储中文件的MIME-Type也是image/jpeg,而不是image/jpg,合理怀疑这是微信在iOS端的bug。

声明:烈火灼冰|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 关于微信小程序iOS端图片上传的睿智问题——困扰了我好久,令人窒息


离离沐雪踏轻尘