Android 上传PHP xUtils Bug修复分析过程

起因

作为全职PHPer偶尔需要客串下Androider,最近公司的一个项目需要Android的客户端(主要图片特效处理及其上传),自己就客串下Androider.

之前有过Android开发经验所以做这个挺顺手的,几乎所有东西直接github中拿过来改改就用,不过在处理图片上传的时候选择了xUtils这个

开源工具类,用起来确实比较好用,挺方便的,例如如下代码就可以实现上传:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
RequestParams params = new RequestParams();
params.addBodyParameter("file", file);
HttpUtils httpUtils = new HttpUtils();
httpUtils.send(HttpRequest.HttpMethod.POST, UPLOAD_URL, params, new RequestCallBack<String>() {
@Override
//上传失败处理方法
public void onFailure(HttpException arg0, String msg) {
alert(msg);
}
@Override
//上传进度处理
public void onLoading(long total, long current,
boolean isUploading) {
if (isUploading) {
Log.i(LOG_NAME, "upload:" + current + "/" + total);
}
}
@Override
//上传成功处理
public void onSuccess(ResponseInfo<String> responseInfo) {
alert(responseInfo.result);
Log.i(LOG_NAME, responseInfo.result);
}
});

可以看到用起来比较方便,如果自己写还是比较麻烦的。不过最让人头疼的不是使用方法,而是作为接收端为PHP的话是接收不到上传的文件,最后经证实
不仅仅是PHP C# 也有问题, 网上搜素了下不少人都遇到问题不过没有解决方案,看来只能自己动手解决了