Greetings,
I'm having trouble uploading a photo from my Android phone. Here is the code I'm using to prompt the user to select a photo:
public class Uploader{
        public void upload(){
            Log.i("EOH","hi...");
            Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
            photoPickerIntent.setType("image/*");
            startActivityForResult(photoPickerIntent, 1);
        }
        protected void onActivityResult(int requestCode, int resultCode, Intent data)
        {
            if (resultCode == RESULT_OK)
            {
                Bundle extras = data.getExtras();
                Bitmap b = (Bitmap) extras.get("data");
                //what do do now with this Bitmap...
                    //how do I upload it?
            }
        }
    }
So I have the Bitmap b, however I don't know what to do next?
I have the following code for sending POST requests:
List<NameValuePair> params = new ArrayList<NameValuePair>(2);  
params.add(new BasicNameValuePair("someValA", String.valueOf(lat)));  
params.add(new BasicNameValuePair("someValB", String.valueOf(lng)));  
new HttpConnection(handler).post("http://myurl.com/upload.php",params);
How can I hook up a Bitmap image to this? I've searched google for ages and can't find a good way of doing it.
I hope someone can help.
Many thanks in advance,
Ok I've tried chirag shah's suggestion. Here is my code:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
        {
            if (resultCode == RESULT_OK)
            {
                Uri imageUri=data.getData();
                List<NameValuePair> params = new ArrayList<NameValuePair>(1);
                params.add(new BasicNameValuePair("image", imageUri.getPath()));
                post("http://www.myurl.com/ajax/uploadPhoto.php",params);
            }
        }
where the post function (as recommended) is:
public void post(String url, List<NameValuePair> nameValuePairs) {
            HttpClient httpClient = new DefaultHttpClient();
            HttpContext localContext = new BasicHttpContext();
            HttpPost httpPost = new HttpPost(url);
            try {
                MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
                for(int index=0; index < nameValuePairs.size(); index++) {
                    if(nameValuePairs.get(index).getName().equalsIgnoreCase("image")) {
                        // If the key equals to "image", we use FileBody to transfer the data
                        entity.addPart(nameValuePairs.get(index).getName(), new FileBody(new File (nameValuePairs.get(index).getValue())));
                    }else{
                        // Normal string data
                        entity.addPart(nameValuePairs.get(index).getName(), new StringBody(nameValuePairs.get(index).getValue()));
                    }
                }
                httpPost.setEntity(entity);
                HttpResponse response = httpClient.execute(httpPost, localContext);
                Log.i("EOH",response.toString());
            } catch (IOException e) {
                e.printStackTrace();
            }
    }
However myurl.com/ajax/uploadPhoto.php is getting nothing. I've created a PHP log to log any activity on uploadPhoto.php, and nothing is showing up. It's worth noting that if I just type myurl.com/ajax/uploadPhoto.php straight into a web browser, it logs fine.
Any more suggestions?
Many thanks,
 
    