title: resize image before upload to server using php and android
body: <p>Im using the code below to upload an image to the server using java and PHP, i works fine, but i would like to resize the image before upload to the server, can some help me how to do that THANKS!!</p>
  
  <pre><code>public class MainActivity extends Activity implements OnClickListener{
  
      private TextView messageText;
      private Button uploadButton, btnselectpic;
      private ImageView imageview;
      private int serverResponseCode = 0;
      private ProgressDialog dialog = null;
  
      private String upLoadServerUri = null;
      private String imagepath=null;
      @Override
      public void onCreate(Bundle savedInstanceState) {
  
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          uploadButton = (Button)findViewById(R.id.uploadButton);
          messageText  = (TextView)findViewById(R.id.messageText);
          btnselectpic = (Button)findViewById(R.id.button_selectpic);
          imageview = (ImageView)findViewById(R.id.imageView_pic);
  
          btnselectpic.setOnClickListener(this);
          uploadButton.setOnClickListener(this);
          upLoadServerUri = "http://192.168.0.15/UploadToServer.php";
      }
  
  
      @Override
      public void onClick(View arg0) {
          if(arg0==btnselectpic)
          {
              Intent intent = new Intent();
              intent.setType("image/*");
              intent.setAction(Intent.ACTION_GET_CONTENT);
              startActivityForResult(Intent.createChooser(intent, "Complete action using"), 1);
          }
          else if (arg0==uploadButton) {
  
               dialog = ProgressDialog.show(MainActivity.this, "", "Uploading file...", true);
               messageText.setText("uploading started.....");
               new Thread(new Runnable() {
                   public void run() {
  
                        uploadFile(imagepath);
  
                   }
                 }).start();     
          }
  
      } 
  
      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  
          if (requestCode == 1 &amp;&amp; resultCode == RESULT_OK) {
              //Bitmap photo = (Bitmap) data.getData().getPath(); 
  
              Uri selectedImageUri = data.getData();
              imagepath = getPath(selectedImageUri);
              Bitmap bitmap=BitmapFactory.decodeFile(imagepath);
              imageview.setImageBitmap(bitmap);
              messageText.setText("Uploading file path:" +imagepath);
  
          }
      }
           public String getPath(Uri uri) {
                  String[] projection = { MediaStore.Images.Media.DATA };
                  Cursor cursor = managedQuery(uri, projection, null, null, null);
                  int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                  cursor.moveToFirst();
                  return cursor.getString(column_index);
              }
  
      public int uploadFile(String sourceFileUri) {
  
  
            String fileName = sourceFileUri;
  
            HttpURLConnection conn = null;
            DataOutputStream dos = null;  
            String lineEnd = "\r\n";
            String twoHyphens = "--";
            String boundary = "*****";
            int bytesRead, bytesAvailable, bufferSize;
            byte[] buffer;
            int maxBufferSize = 1 * 1024 * 1024; 
            File sourceFile = new File(sourceFileUri); 
  
            if (!sourceFile.isFile()) {
  
                 dialog.dismiss(); 
  
                 Log.e("uploadFile", "Source File not exist :"+imagepath);
  
                 runOnUiThread(new Runnable() {
                     public void run() {
                         messageText.setText("Source File not exist :"+ imagepath);
                     }
                 }); 
  
                 return 0;
  
            }
            else
            {
                 try { 
  
                       // open a URL connection to the Servlet
                     FileInputStream fileInputStream = new FileInputStream(sourceFile);
                     URL url = new URL(upLoadServerUri);
  
                     // Open a HTTP  connection to  the URL
                     conn = (HttpURLConnection) url.openConnection(); 
                     conn.setDoInput(true); // Allow Inputs
                     conn.setDoOutput(true); // Allow Outputs
                     conn.setUseCaches(false); // Don't use a Cached Copy
                     conn.setRequestMethod("POST");
                     conn.setRequestProperty("Connection", "Keep-Alive");
                     conn.setRequestProperty("ENCTYPE", "multipart/form-data");
                     conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
                     conn.setRequestProperty("uploaded_file", fileName); 
  
                     dos = new DataOutputStream(conn.getOutputStream());
  
                     dos.writeBytes(twoHyphens + boundary + lineEnd); 
                     dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""
                                               + fileName + "\"" + lineEnd);
  
                     dos.writeBytes(lineEnd);
  
                     // create a buffer of  maximum size
                     bytesAvailable = fileInputStream.available(); 
  
                     bufferSize = Math.min(bytesAvailable, maxBufferSize);
                     buffer = new byte[bufferSize];
  
                     // read file and write it into form...
                     bytesRead = fileInputStream.read(buffer, 0, bufferSize);  
  
                     while (bytesRead &gt; 0) {
  
                       dos.write(buffer, 0, bufferSize);
                       bytesAvailable = fileInputStream.available();
                       bufferSize = Math.min(bytesAvailable, maxBufferSize);
                       bytesRead = fileInputStream.read(buffer, 0, bufferSize);   
  
                      }
  
                     // send multipart form data necesssary after file data...
                     dos.writeBytes(lineEnd);
                     dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
  
                     // Responses from the server (code and message)
                     serverResponseCode = conn.getResponseCode();
                     String serverResponseMessage = conn.getResponseMessage();
  
                     Log.i("uploadFile", "HTTP Response is : "
                             + serverResponseMessage + ": " + serverResponseCode);
  
                     if(serverResponseCode == 200){
  
                         runOnUiThread(new Runnable() {
                              public void run() {
                                  String msg = "File Upload Completed.\n\n See uploaded file here : \n\n"
                                        +" F:/wamp/wamp/www/uploads";
                                  messageText.setText(msg);
                                  Toast.makeText(MainActivity.this, "File Upload Complete.", Toast.LENGTH_SHORT).show();
                              }
                          });                
                     }    
  
                     //close the streams //
                     fileInputStream.close();
                     dos.flush();
                     dos.close();
  
                } catch (MalformedURLException ex) {
  
                    dialog.dismiss();  
                    ex.printStackTrace();
  
                    runOnUiThread(new Runnable() {
                        public void run() {
                            messageText.setText("MalformedURLException Exception : check script url.");
                            Toast.makeText(MainActivity.this, "MalformedURLException", Toast.LENGTH_SHORT).show();
                        }
                    });
  
                    Log.e("Upload file to server", "error: " + ex.getMessage(), ex);  
                } catch (Exception e) {
  
                    dialog.dismiss();  
                    e.printStackTrace();
  
                    runOnUiThread(new Runnable() {
                        public void run() {
                            messageText.setText("Got Exception : see logcat ");
                            Toast.makeText(MainActivity.this, "Got Exception : see logcat ", Toast.LENGTH_SHORT).show();
                        }
                    });
                    Log.e("Upload file to server Exception", "Exception : "  + e.getMessage(), e);  
                }
                dialog.dismiss();       
                return serverResponseCode; 
  
             } // End else block 
           }
  
  
  }
  </code></pre>
  
  <p>And php code is</p>
  
  <pre><code>&lt; ?php
  
     $file_path = "uploads/";
  
     $file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
     if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
         echo "success";
     } else{
         echo "fail";
     }
  ? &gt;
  </code></pre>