2

我正在使用适用于 Android 的 Loopj AsyncHttpClient,它就像一个魅力。现在我正在尝试将三个小图像上传到我的服务器,但我遇到了一些问题。这很奇怪,因为如果我上传 2 张图片,它可以完美运行,但是当我尝试向同一个请求添加第三张图片时,服务器响应是文件上传的错误 3:

UPLOAD_ERR_PARTIAL
Value: 3; The uploaded file was only partially uploaded.

所以当我这样做时:

params.put("photo1", f1);
params.put("photo2", f2);

它有效......但是当我添加第三个时:

params.put("photo1", f1);
params.put("photo2", f2);
params.put("photo3", f3);

服务器无法处理请求...我检查了文件,服务器端应用程序似乎工作正常(我尝试使用邮递员发送数据并且它工作正常)

你知道为什么 AsyncHttpClient 上传 3 个文件失败但上传 2 个文件成功吗?

提前谢谢

4

2 回答 2

2

此库的 1.4.4 版本已引入此问题。我还没有时间深入挖掘,但我怀疑这个特定的提交:https ://github.com/loopj/android-async-http/commit/9f73dc722fdf8b564bf1487eef395d0b7e4ae862负责这个问题。

作为一种解决方法,现在使用 1.4.3 版本。它应该可以正常工作。

于 2014-03-21T21:02:26.927 回答
0

更新到 1.4.4 后我遇到了类似的问题。如果我上传 2 张图片,服务器只会得到 1 张图片(如果是 3 张,将得到 2 张)。经过搜索和测试,我知道服务器,我的代码和 1.4.3 都可以。

今天我试试这个:

params.put("photo1", new FileInputStream(f1));
params.put("photo2", new FileInputStream(f2));
params.put("photo3", new FileInputStream(f3));

有用。

于 2014-06-05T01:44:12.913 回答