title: How to upload all gallery images to a server in Android ?
body: <p>I want to implement a feature that if a user clicks the button backup the app  automatically  take all images from gallery  and then send it to a server. At the moment what I have done is user is clicking on the button then he selects the image and then I am sending photo to a server but what I want to do is, I want to take all the images stored in memory card or phone.</p>
  
  <p>How can I do this ?</p>
  
  <p>Here is my working code of picking a photo and then sending to server </p>
  
  <p><strong>MainActivity</strong></p>
  
  <pre><code>public class MainActivity extends Activity{
  
      Uri currImageURI;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
  
  
  
          Button upload_btn = (Button) this.findViewById(R.id.uploadButton);
          upload_btn.setOnClickListener(new View.OnClickListener() {
              public void onClick(View view) {
                  // To open up a gallery browser
                    Intent intent = new Intent();
                    intent.setType("image/*");
                    intent.setAction(Intent.ACTION_GET_CONTENT);
                    startActivityForResult(Intent.createChooser(intent, "Select Picture"),1);
                  }});
  
  
  
      }
  
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
          if (resultCode == RESULT_OK) {
              if (requestCode == 1) {
              // currImageURI is the global variable I’m using to hold the content:
                  currImageURI = data.getData();
                  System.out.println("Current image Path is -----&gt;" +                          getRealPathFromURI(currImageURI));
                  HttpUploader uploader = new HttpUploader();
  
                  try {
                       uploader.execute(getRealPathFromURI(currImageURI)).get();        
                      } catch (InterruptedException e) {
                        e.printStackTrace();
                      } catch (ExecutionException e) {
                        e.printStackTrace();
                      }
                  TextView tv_path = (TextView) findViewById(R.id.path);
                  tv_path.setText(getRealPathFromURI(currImageURI));
              }
          }
      }
  
    //Convert the image URI to the direct file system path of the image file
      public String getRealPathFromURI(Uri contentUri) {
          String [] proj={MediaStore.Images.Media.DATA};
          android.database.Cursor cursor = managedQuery( contentUri,
          proj,     // Which columns to return
          null,     // WHERE clause; which rows to return (all rows)
          null,     // WHERE clause selection arguments (none)
          null);     // Order-by clause (ascending by name)
          int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
          cursor.moveToFirst();
          return cursor.getString(column_index);
      }
  
  }
  </code></pre>
  
  <p><strong>HttpUploader</strong>   </p>
  
  <pre><code>    public  class HttpUploader extends AsyncTask&lt;String, Void, String&gt; {
  
      protected String doInBackground(String... path) {
  
          String outPut = null;
  
          for (String sdPath:path) {
  
              Bitmap bitmapOrg = BitmapFactory.decodeFile(sdPath);
              ByteArrayOutputStream bao = new ByteArrayOutputStream();
  
              //Resize the image
              double width = bitmapOrg.getWidth();
              double height = bitmapOrg.getHeight();
              double ratio = 400/width;
              int newheight = (int)(ratio*height);
  
              System.out.println("———-width" + width);
              System.out.println("———-height" + height);
  
              bitmapOrg = Bitmap.createScaledBitmap(bitmapOrg, 400, newheight, true);
  
              //Here you can define .PNG as well
              bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 95, bao);
              byte[] ba = bao.toByteArray();
              String ba1 = Base64.encodeToString(ba, 0);
  
              System.out.println("uploading image now ——–" + ba1);
  
              ArrayList&lt;NameValuePair&gt; nameValuePairs = new ArrayList&lt;NameValuePair&gt;();
              nameValuePairs.add(new BasicNameValuePair("image", ba1));
  
              try {
                  HttpClient httpclient = new DefaultHttpClient();
                  HttpPost httppost = new HttpPost("httppath");
                  httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
  
                  HttpResponse response = httpclient.execute(httppost);
                  HttpEntity entity = response.getEntity();                
  
                  // print responce
                  outPut = EntityUtils.toString(entity);
                  Log.i("GET RESPONSE—-", outPut);
  
                  //is = entity.getContent();
                  Log.e("log_tag ******", "good connection");
  
                  bitmapOrg.recycle();
  
              } catch (Exception e) {
                  Log.e("log_tag ******", "Error in http connection " + e.toString());
              }
          }
          return outPut;
      }
  }
  </code></pre>