上传身份证--uc手机浏览器拍照覆盖问题

公司项目中,要求实现上传身份证正反面照片功能。兼容pc端与手机端。pc端直接选择文件上传,在谷歌,火狐,safari等均没问题。

手机端可调用手机相机或选择图库,选择图库,各浏览器均没问题,手机拍照呢,在uc浏览器上就有问题了....

采用的是form表单提交的方式(后台要求),结果上传的两张图片一样,前一张被后一张覆盖了!!

经过分析,图片被覆盖掉,唯一的原因就是,拍照的过程中,手机占用同一块内存,这就是uc独特的u3内核机制导致的吧。

具体分析如下图所示:

对于input的file:拍照上传时,未保存在硬盘中,直接在内存中,占用同一块内存,导致二进制文件流被覆盖,

        选择图库呢,因为是从硬盘中读取,每次使用时读取都会在内存中新开辟一个内存空间,所以,不会有覆盖的问题啦。

 

 

在测试的过程中呢,曾遇到个奇怪问题,拍照上传照片时好时不好????真是奇怪了,想了想可能是大小受限吧,后来上网查了下,form的post提交并没有大小限制,但是出现限制的原因,可能是tomcat里写的限制没有处理,结果和后端一沟通,果然是这个问题呀!机制解决~~

我本人是不太赞同form提交的,ajax提交的话就不会产生这种问题了。 

 

posted on 2017-03-30 20:07  柔光  阅读(796)  评论(0编辑  收藏  举报

导航