title: Android - Send Image file to the Server DB
body: <p>Users save three data:
  <em>name</em>, <em>note</em> and <em>image</em>. As you can see the code below, 
  I succeeded to code to send the name and note to the server side.
  But, I have no idea how to send a selected image file from the device to the serverDB.</p>
  
  <pre><code>public class AddEditWishlists extends Activity {
  
      // Client-Server - Start //////////////////////
      // Progress Dialog
      private ProgressDialog pDialog;
  
      JSONParser jsonParser = new JSONParser();
      EditText inputName;
      EditText inputDesc;
  
      // url to create new product
      private static String url_create_product = 
          "http://10.56.43.91/android_connect/create_product.php";
  
  
      // JSON Node names
      private static final String TAG_SUCCESS = "success";
      // Client-Server - End //////////////////////
  
  
      //Define Variables
      private EditText inputname;
      private EditText inputnote;
      private Button upload;
      private Bitmap yourSelectedImage;
      private ImageView inputphoto;
      private Button save;
      private int id;
      private byte[] blob=null;
      byte[] image=null;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.add_wishlist);
          setUpViews();
      }
  
      private void setUpViews() {
  
          inputname = (EditText) findViewById(R.id.inputname);
          inputnote = (EditText) findViewById(R.id.inputnote);
          inputphoto = (ImageView) findViewById(R.id.inputphoto); 
  
          Bundle extras = getIntent().getExtras();
  
          if (extras != null) {
              id=extras.getInt("id");
              inputname.setText(extras.getString("name"));
              inputnote.setText(extras.getString("note"));
  
              image = extras.getByteArray("blob");
  
              if (image != null) {
                  if (image.length &gt; 3) {
                      inputphoto.setImageBitmap(BitmapFactory.decodeByteArray(image,0,image.length));
                  }
              }
  
          }
  
  
  
          //Image Upload Button
          upload = (Button) findViewById(R.id.upload);
          upload.setOnClickListener(new View.OnClickListener() {
  
              @Override
              public void onClick(View v) {
                  Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                  intent.setType("image/*");
                  startActivityForResult(intent, 0);
              }
          });
  
          // Save the data
          save = (Button) findViewById(R.id.save);
  
          // Save하면 발생되는 이벤트
          save.setOnClickListener(new View.OnClickListener() {
  
              @Override
              public void onClick(View v) {
  
                  if (inputname.getText().length() != 0) {
                      AsyncTask&lt;Object, Object, Object&gt; saveContactTask = new AsyncTask&lt;Object, Object, Object&gt;() {
                          @Override
                          protected Object doInBackground(Object... params) {
                              saveContact();
  
                              // Client-Server - Start //////////////////////////////////////
                              String name = inputname.getText().toString();
                              String description = inputnote.getText().toString();
  
  
                              // Building Parameters
                              List&lt;NameValuePair&gt; params1 = new ArrayList&lt;NameValuePair&gt;();
                              params1.add(new BasicNameValuePair("name", name));
                              params1.add(new BasicNameValuePair("description", description));
  
                              // getting JSON Object
                              // Note that create product url accepts POST method
                              JSONObject json = jsonParser.makeHttpRequest(url_create_product, "POST", params1);
  
                              // check log cat fro response
                              Log.d("Create Response", json.toString());
  
                              // check for success tag
                              try {
                                  int success = json.getInt(TAG_SUCCESS);
  
                                  if (success == 1) {
                                      // successfully created product
                                      // closing this screen
                                      finish();
                                  } else {
                                      // failed to create product
                                  }
                              } catch (JSONException e) {
                                  e.printStackTrace();
                              }
  
                              // Client-Server - End ////////////////////////////////////
  
                              return null;
                          }
  
                          @Override
                          protected void onPostExecute(Object result) {
                              finish();
                          }
                      };
  
                      saveContactTask.execute((Object[]) null);
  
                  } else {
                      AlertDialog.Builder alert = new AlertDialog.Builder(
                              AddEditWishlists.this);
                      alert.setTitle("Error In Save Wish List");
                      alert.setMessage("You need to Enter Name of the Product");
                      alert.setPositiveButton("OK", null);
                      alert.show();
                  }
              }
          });
      }
  
  
      // If users save data, this will act (data -&gt; db) 
      private void saveContact() {
  
          if(yourSelectedImage!=null){
              ByteArrayOutputStream outStr = new ByteArrayOutputStream();
              yourSelectedImage.compress(CompressFormat.JPEG, 100, outStr);
              blob = outStr.toByteArray();
          }
  
          else{blob=image;}
  
          // Change Text type to string type to save in the DB
          SQLiteConnector sqlCon = new SQLiteConnector(this);
  
          if (getIntent().getExtras() == null) {
              sqlCon.insertWishlist(inputname.getText().toString(), inputnote.getText().toString(), blob);
          }
  
          else {
              sqlCon.updateWishlist(id, inputname.getText().toString(), inputnote.getText().toString(),blob);
          }
  
  
      }
  
      @Override
      protected void onActivityResult(int requestCode, int resultCode,Intent resultdata) {
          super.onActivityResult(requestCode, resultCode, resultdata);
          switch (requestCode) {
          case 0:
              if (resultCode == RESULT_OK) {
                  Uri selectedImage = resultdata.getData();
                  String[] filePathColumn = { MediaStore.Images.Media.DATA };
  
                  Cursor cursor = getContentResolver().query(selectedImage,
                          filePathColumn, null, null, null);
                  cursor.moveToFirst();
  
                  int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                  String filePath = cursor.getString(columnIndex);
  
                  cursor.close();
                  // Convert file path into bitmap image using below line.
                  yourSelectedImage = BitmapFactory.decodeFile(filePath);
                  inputphoto.setImageBitmap(yourSelectedImage);
              }
  
          }
      }
  
  }
  </code></pre>
  
  <p>How can I code between the client-server annotation to send the image file?..</p>