1
abc123ccc 2016-04-15 12:55:09 +08:00
这个和安桌系统有关的, 4.4 及以上版本,选择图片后, H5 FORM 上传的图片是没有文件名后缀的,扯蛋吧。我认为是安桌 APP 没有给我配置好,还和他们吵,最后我抓包对比,发现了这个问题,最后安桌的同事说,我杂知道安桌系统这么坑人呢。妈蛋,赞钱买苹果手机去。苦逼呀,我现在还在用山寨手机呢。
|
2
lyhapple 2016-04-15 14:37:30 +08:00
哈哈爽了, 这玩意我当时也折腾了好几天。后来发现和 android4.4 有关,直接贴给你解决方案,
起因: 在微信端 HTML5 上传文件时发现文件无法上传。 原因: 是安卓 4.4 的 bug , 安卓 5 以上无此问题, 不能错怪微信 解决: 使用百度团队开发的 webuploder 组件(ajax, html5, flash 上传解决方案) 必须给 webuploder 初始化配置时设置 sendAsBinary 为 True 后端 python 代码也需要接收二进制数据,与以往的写法不同, 主要区别是直接读取 request.body 的内容 def handle_uploaded_binary_file(name, request_body, save_dir): try: if not os.path.exists(save_dir): os.makedirs(save_dir) ext = get_file_ext_name(name) filename = "%s.%s" % (uuid.uuid4(), ext) full_path = os.path.join(save_dir, filename) f = open(full_path, 'wb') f.write(request_body) f.close() except Exception, e: logger.exception(e) full_path = '' return full_path |
3
lyhapple 2016-04-15 14:38:04 +08:00 1
幸好我记了笔记,不然我自己又会忘了是怎么解决的了
|
6
wjfz 2016-04-15 15:42:58 +08:00
用微信自己的 JSSDK 啊。
|
7
maelon 2016-04-15 15:45:25 +08:00
前段时间也遇到过这个问题,然后自己写了这个东西 https://github.com/maelon/jIMGCompress.git ,原理是读取二进制文件,判断文件头,然后可以拿到文件类型
|
8
subpo 2016-04-15 15:47:29 +08:00
用微信 sdk 不行吗?
|
10
maelon 2016-04-15 15:53:32 +08:00
@lyhapple 我也测了很多设备,发现就是微信的问题,跟 android4 估计关系不大,微信有可能是 app 处理的时候有问题。顺便吐槽下 android 微信内嵌腾迅 qq x5 内核,真恶心
|
12
shineMicroxy 2016-04-17 09:54:05 +08:00
如果是 Android M 一定要另外申请读写权限,光配置 Manifest 的 permission 还不够
|