How to post multiple image files using ion library

2019-08-10 06:38发布

问题:

I am using this code to upload single image file on server.

But i need to upload multiple 'n' number of files at once

Ion.with(MainActivity.this)
                .load(Constant.UPLOAD_IMG)
                .setMultipartFile("UploadForm[imageFiles]", imgFile.getName(), imgFile)
                .asJsonObject()
                .setCallback(new FutureCallback<JsonObject>() {
                    @Override
                    public void onCompleted(Exception e, JsonObject result) {
                    }
                });

I tried to get MultipartBodyBuilder separately.

 MultipartBodyBuilder body = Ion.with(MainActivity.this)
                .load(Constant.UPLOAD_IMG);

 body.setMultipartFile("UploadForm[imageFiles]", imgFile.getName(), imgFile);

回答1:

Use addMultipartParts to add a list of FilePart or StringParts.

https://github.com/koush/ion/blob/master/ion/src/com/koushikdutta/ion/builder/MultipartBodyBuilder.java#L55



回答2:

Here is snippet code to use addMultipartParts

List < Part > files = new ArrayList();
for (int i = 0; i < imageFiles; i++) {
  files.add(new FilePart("UploadForm[" + i + "]", new File(imgFile.get(i).getName())));
}

Ion.with(MainActivity.this)
  .load(Constant.UPLOAD_IMG)
  .addMultipartParts(files)
  .asJsonObject()
  .setCallback(new FutureCallback < JsonObject > () {
    @Override
    public void onCompleted(Exception e, JsonObject result) {}
  });