Android 小附件上传遇到的一些问题(简单记录下)
需求是这样子的
添加附件和图片.png
遇到的一些困难
1.本地文件的选择(这个搞了一天半);
2.文件上传失败(Unexpected char 0x53ef at 35 in Content-Disposition value: form-data; name="image"; filename="可乐0.doc"
);
处理方案
1.开始本来想直接使用系统的本文文件管理器来进行选择,搞了半天在选择后文件路径获取上只能拿到图片的真实有效地址,文件的地址莫名的在前面多了一个raw:
,一天下来我给折腾的也没啥好的解决方案,然后选择了在github上找现成的,结果依赖集成商又遇到了问题,最后只能将代码下载下来,把module导进项目自己修改使用
参考过的文章地址:
https://www.cnblogs.com/panhouye/p/6751710.html (获取的非图片地址前面多了一个raw:
)
https://github.com/leonHua/LFilePicker (依赖后application里边的参数有冲突,加了replace貌似没顶用,就放弃了)
https://github.com/DroidNinja/Android-FilePicker (同上)
https://github.com/fishwjy/MultiType-FilePicker (同上)
最终是使用上边第二个中的module实现的!
2.使用OkGo作为网络框架,上传附件报错(Unexpected char 0x53ef at 35 in Content-Disposition value: form-data; name="image"; filename="可乐0.doc"
),经过排查发现是因为接口中filename字段中有中文的原因导致的。解决方案:上传时进行编码处理(eFileName = URLEncoder.encode(f.getName(), "UTF-8");
),接受到进行解码处理(r.data.DisplayName = URLDecoder.decode(r.data.DisplayName, "UTF-8");
)