我正在尝试使用该方法将多个图像与其他一些参数(字符串)一起上传到 PHP 服务器POST
。我正在使用多部分方法。我添加了各种解决方案中规定的 4 个库(apachemime、httpclient、httpmime、httpcore),但我的 SDK 无法识别MultipartEntity
,显示错误:' cannot be resolved to a type
'。我也试过MultipartEntityBuilder
了,但即使这样也显示出同样的错误。我基本上想将位图数组列表上传到服务器并同时显示进度条。
问问题
944 次
1 回答
1
您应该发布一些包含该问题的代码,以便我们查看并帮助您。
但是如果你想尝试一些简单的东西,你可以使用这个库,AsyncHttpClient:http ://loopj.com/android-async-http/
使用这个库,您可以像这样发布多个文件:
private static AsyncHttpClient clientHttp = new AsyncHttpClient();
...
RequestParams params = new RequestParams();
final String TAG_FILE = "archivo1";
final String TAG_FILE_1 = "archivo2";
final String TAG_FILE_2 = "archivo3";
final String PATH_FILE_1 = ApplicationContext.getInstance().getFilesDir().getPath() + "/" + "file1.jpg";
final String PATH_FILE_2 = ApplicationContext.getInstance().getFilesDir().getPath() + "/" + "file2.jpg";
final String PATH_FILE_3 = ApplicationContext.getInstance().getFilesDir().getPath() + "/" + "file3.jpg";
try {
params.put(TAG_FILE, PATH_FILE_1);
params.put(TAG_FILE_1, PATH_FILE_2);
params.put(TAG_FILE_2, PATH_FILE_3);
params.put(TAG_PARAM, "SOME TEXT");
}
catch(FileNotFoundException e) {
//Manage your exception
}
final int DEFAULT_TIMEOUT = 30 * 1000;
clientHttp.setTimeout(DEFAULT_TIMEOUT);
clientHttp.post("http://somereceiver.php", params, new JsonHttpResponseHandler() {
@Override
public void onSuccess(JSONObject response) {
//Do your code on success
}
@Override
public void onStart() {
// Show your progress bar
}
@Override
public void onFinish() {
// Hide your progress bar
super.onFinish();
if(PATH_FILE_1 != null) {
File tem = new File(PATH_FILE_1);
if(tem.exists()) tem.delete();
}
if(PATH_FILE_2 != null) {
File tem = new File(PATH_FILE_2);
if(tem.exists()) tem.delete();
}
if(PATH_FILE_3 != null) {
File tem = new File(PATH_FILE_3);
if(tem.exists()) tem.delete();
}
}
});
如果您不需要 json,您也可以使用通用响应类型,因此您会得到一个字符串。
希望这可以帮助。
于 2014-03-21T15:19:30.060 回答