title: Upload image to the server in Android Using JSON
body: <p>I have read a lot of posts about uploading image to the server but i still have a problem. I m able to select the image from my device but it's not uploaded. I have no err .I receive a toast message that upload is successful but when i go to the upload folder, i cannot find the image.</p>
  
  <p>I'm using this tutorial  <a href="http://geekonjava.blogspot.in/2014/03/upload-image-on-server-in-android-using.html" rel="nofollow">Upload Image on Server in Android Using JSON</a></p>
  
  <p>my layout fragment_profil:</p>
  
  <blockquote>
    <p></p>
  
  <pre><code>        &lt;ImageView
              android:id="@+id/profile_picture"
              android:layout_width="@dimen/profile_pic"
              android:layout_height="@dimen/profile_info_padd"
              android:scaleType="fitCenter"
              android:src="@drawable/ic_launcher" /&gt;
  
          &lt;Button
              android:id="@+id/button_selectpic"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="@string/select_pic_btn" /&gt;
  
          &lt;Button
              android:id="@+id/uploadButton"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:text="@string/upload_pic_btn" /&gt;
  
          &lt;TextView
              android:id="@+id/messageText"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:text=""
              android:textColor="#000000"
              android:textStyle="bold" /&gt;
  
  
      &lt;/LinearLayout&gt;
  </code></pre>
  </blockquote>
  
  <p>ProfilFragment :</p>
  
  <pre><code>ProgressDialog pDialog;
  Button uploadButton, btnselectpic;
  private int serverResponseCode = 0;
  private String upLoadServerUri = null;
  private String imagepath=null;
  
  @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
              Bundle savedInstanceState) {
  
          View rootView = inflater.inflate(R.layout.fragment_profil, container,
                  false);
          uploadButton = (Button)rootView.findViewById(R.id.uploadButton);
          btnselectpic = (Button)rootView.findViewById(R.id.button_selectpic);
          messageText  = (TextView)rootView.findViewById(R.id.messageText);
          btnselectpic.setOnClickListener(this);
          uploadButton.setOnClickListener(this);
  
  
          upLoadServerUri = "http://My ip address/upload/upload_to_server.php";
  
  private void selectProfilPic(){
          Intent intent = new Intent();
          intent.setType("image/*");
          intent.setAction(Intent.ACTION_GET_CONTENT);
          startActivityForResult(Intent.createChooser(intent, "Complete action using"), 1);
      }
  
      private void uploadProfilPic(){
  
          pDialog = ProgressDialog.show(getActivity(), "", "Uploading file...", true);
          messageText.setText("uploading started.....");
          new Thread(new Runnable() {
                       public void run() {
  
                            uploadFile(imagepath);
  
                       }
                     }).start();     
      }
  
       @Override
       public void onActivityResult(int requestCode, int resultCode, Intent data) {
  
           if (requestCode == 1 &amp;&amp; resultCode == getActivity().RESULT_OK) {
                  //Bitmap photo = (Bitmap) data.getData().getPath(); 
  
                  Uri selectedImageUri = data.getData();
                  imagepath = getPath(selectedImageUri);
                  Bitmap bitmap=BitmapFactory.decodeFile(imagepath);
                  profilePic.setImageBitmap(bitmap);
                  messageText.setText("Uploading file path:" +imagepath);
  
           }
          }
  
       public String getPath(Uri uri) {
           String[] projection = { MediaStore.Images.Media.DATA };
           @SuppressWarnings("deprecation")
          Cursor cursor = getActivity().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()) {
  
                  pDialog.dismiss(); 
  
                  Log.e("uploadFile", "Source File not exist :"+imagepath);
  
                  getActivity().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){
  
                         getActivity().runOnUiThread(new Runnable() {
                               public void run() {
                                String msg = "File Upload Completed.\n\n See uploaded file here : \n\n"
                                        +"C:\\wampserver\\www\\uploads";
                                messageText.setText(msg);
  
                                   Toast.makeText(getActivity(), "File Upload Complete.", Toast.LENGTH_SHORT).show();
                               }
                           });                
                      }    
  
                      //close the streams //
                      fileInputStream.close();
                      dos.flush();
                      dos.close();
  
                 } catch (MalformedURLException ex) {
  
                     pDialog.dismiss();  
                     ex.printStackTrace();
  
                    getActivity().runOnUiThread(new Runnable() {
                         public void run() {
                          messageText.setText("MalformedURLException Exception : check script url.");
                             Toast.makeText(getActivity(), "MalformedURLException", Toast.LENGTH_SHORT).show();
                         }
                     });
  
                     Log.e("Upload file to server", "error: " + ex.getMessage(), ex);  
                 } catch (Exception e) {
  
                     pDialog.dismiss();  
                     e.printStackTrace();
  
                     getActivity().runOnUiThread(new Runnable() {
                         public void run() {
                          messageText.setText("Got Exception : see logcat ");
                             Toast.makeText(getActivity(), "Got Exception : see logcat ", Toast.LENGTH_SHORT).show();
                         }
                     });
                     Log.e("Upload file to server Exception", "Exception : "  + e.getMessage(), e);  
                 }
                 pDialog.dismiss();       
                 return serverResponseCode; 
  
                 } // End else block 
               }
  
  
       @Override
      public void onClick(View v) {
          switch (v.getId()) {
          case R.id.edit_profil_infos_btn:
              editProfileInfos(nom.getText().toString(), prenom.getText()
                      .toString(), email.getText().toString(), userID);
              break;
          case R.id.button_selectpic:
              selectProfilPic();
              break;
          case R.id.uploadButton:
              uploadProfilPic();
              break;
          }
  
      }
  </code></pre>
  
  <p>upload_to_server :</p>
  
  <pre><code>&lt;?php
    require_once 'DB_Connect.php';
      $file_path = "uploads/";
  
      $file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
      if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
      mysqli_query("INSERT INTO `user` (image) VALUES ('".$file_path."')");
      } else{
          echo "fail";
      }
   ?&gt;
  </code></pre>