我知道我可以从AsyncHttpClient上传单个文件
http://loopj.com/android-async-http/
File myFile = new File("/path/to/file.png");
RequestParams params = new RequestParams();
try {
params.put("profile_picture", myFile);
} catch(FileNotFoundException e) {}
但是我必须使用多部分帖子将多个文件上传到服务器。 我怎么能这样做?
答案 0 :(得分:3)
您可以将文件数组作为files键的值传递。 为此,请遵循以下代码:
File[] myFiles = { new File("pic.jpg"), new File("pic1.jpg") };
RequestParams params = new RequestParams();
try {
params.put("profile_picture[]", myFiles);
} catch(FileNotFoundException e) {
}
另外,如果需要动态数组,可以使用ArrayList 并使用方法.toArray()
转换为File []类型ArrayList<File> fileArrayList = new ArrayList<>();
//...add File objects to fileArrayList
File[] files = new File[fileArrayList.size()];
fileArrayList.toArray(files);
希望这有帮助。 = d
答案 1 :(得分:1)
创建SimpleMultipartEntity对象,并为要上载的每个文件调用addPart。
答案 2 :(得分:1)
File [] files = lst.toArray(new File [lst.size()]);
try {
params.put("media[]", files);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
答案 3 :(得分:-1)
您应该使用以下代码:
public static void fileUpLoad(String url,File file,AsyncHttpResponseHandler asyncHttpResponseHandler){
RequestParams requestParams=new RequestParams();
try{
requestParams.put("profile_picture", file,"application/octet-stream");
client.post(url, requestParams, new AsyncHttpResponseHandler());
} catch (Exception e) {
e.printStackTrace();
}
}