上传java.lang.ArrayIndexOutOfBoundsException的多部分实体文件

时间:2016-10-12 05:31:18

标签: java android asyncfileupload multifile-uploader

使用文件数组上传的多部分实体文件。 我已经提到了下面的错误代码,请帮我解决这个问题。异常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();}

1 个答案:

答案 0 :(得分:1)

当你做

entityBuilder.addPart( "userfile[" + i + "]", new FileBody(mfile[i]));

您已退出for循环,且i已变为等于selectedImgLength的大小,因此您将获得ArrayIndexOutOfBoundsException

尝试更改,以便将文件添加到for循环中的entityBuilder