Может кто-нибудь знает, как разместить массив изображений на сервере в Android?

Я запутался в запросе, в котором мне нужно отправить массив изображений на сервер.

Я гуглил это, но я не мог найти соответствующие данные, поэтому кто-нибудь может сказать мне, как я могу достичь этого?

Ранний ответ заметен.

Мой код

private void imageUpload(final ArrayList imagePath) {

   SimpleMultiPartRequest smr = new SimpleMultiPartRequest( 
            Request.Method.POST, BASE_URL,
           new Response.Listener<String>() {
               @Override
               public void onResponse(String response) {
                   Log.d( "Response", response );
                   try {
                       JSONObject jObj = new JSONObject( response );
                       String message = jObj.getString( "message" );
                       System.out.println( "Done" );

                       Toast.makeText( getApplicationContext(), message, Toast.LENGTH_LONG ).show();

                   } catch (JSONException e) {
                       // JSON error
                       e.printStackTrace();
                       Toast.makeText( getApplicationContext(), "Json error: " + e.getMessage(), Toast.LENGTH_LONG ).show();
                   }
               }
           }, new Response.ErrorListener() {
       @Override
       public void onErrorResponse(VolleyError error) {

       }
   });

    for (int i = 0; i<imagePath.size();i++){
        String ab = imagePath.get( i ).toString();
        System.out.println("Images is find path "+ab);
        smr.addFile(""+i,imagePath.get(i).toString());
    }

    MyApplication.getInstance().addToRequestQueue(smr);
}  

Спасибо

1 ответ

Я использую https://github.com/esafirm/android-image-picker эту библиотеку, чтобы получить список изображений

  @Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.upload_btn:
            openImagesList();
            break;
    }
}

public void openImagesList() {
    ImagePicker.create(this) // Activity or Fragment
            .start();

}

@Override
public void onActivityResult(int requestCode, final int resultCode, Intent data) {
    if (ImagePicker.shouldHandle(requestCode, resultCode, data)) {
        // Get a list of picked images
        List<Image> images = ImagePicker.getImages(data);
        List<File> imgFile = new ArrayList<>();

        for (Image imge : images) {
            imgFile.add(new File(imge.getPath()));
        }

        for (File f : imgFile) {
            if (f.exists()) {
                Log.i(TAG, "exist");
            }
        }

        uploadToSever(imgFile);
    }
    super.onActivityResult(requestCode, resultCode, data);
}

Используйте https://github.com/amitshekhariitbhu/Fast-Android-Networking для запроса POST

   public void uploadToSever(List<File> imgList) {
    AndroidNetworking.upload("your sever url")
            .addMultipartFileList("image[]", imgList)
            .addMultipartParameter("key", "value")
            .setPriority(Priority.HIGH)
            .build()
            .setUploadProgressListener(new UploadProgressListener() {
                @Override
                public void onProgress(long bytesUploaded, long totalBytes) {
                    // do anything with progress
                }
            })
            .getAsJSONObject(new JSONObjectRequestListener() {
                @Override
                public void onResponse(JSONObject response) {
                    // do anything with response
                }

                @Override
                public void onError(ANError error) {
                    // handle error
                }
            });
}
Другие вопросы по тегам