使用文件数组上传的多部分实体文件。 我已经提到了下面的错误代码,请帮我解决这个问题。异常java.lang.ArrayIndexOutOfBoundsException:length = 2;索引= 2。 在此先感谢。
代码:
try{
int i = 0;
HttpEntity httpEntity = null;
HttpResponse httpResponse = null;
HttpClient httpClient = new DefaultHttpClient();
int selectedImgLength = selectedItems.size();
File[] mfile = new File[selectedImgLength];
for( i = 0; i<selectedImgLength;i++){
//mfile[i]= selectedItems.get(i);// Error InCompatiable type
mfile[i] = new File(selectedItems.get(i));
}
HttpPost httpPost = new HttpPost(url);
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
entityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
entityBuilder.addPart( "userfile[" + i + "]", new FileBody(mfile[i]));
HttpEntity entity = entityBuilder.build();
httpPost.setEntity(entity);
httpResponse = httpClient.execute(httpPost);
httpEntity = httpResponse.getEntity();
response = EntityUtils.toString(httpEntity);
System.out.println("POST IMAGE Response"+response);
}catch(Exception e){e.printStackTrace();}
答案 0 :(得分:1)
当你做
时entityBuilder.addPart( "userfile[" + i + "]", new FileBody(mfile[i]));
您已退出for循环,且i
已变为等于selectedImgLength
的大小,因此您将获得ArrayIndexOutOfBoundsException
尝试更改,以便将文件添加到for循环中的entityBuilder
。