3

I want to upload image using MultipartEntity. I have try below code.

I did not get any error but image is not upload. I have enough permission for upload

PHP

<?php

    //Receive the data from android
    $name = $_POST['name'];
    $data = $_POST['data'];

    //Receive the file
    $file = $_FILES['image']

    move_uploaded_file($_FILES['image']['tmp_name'], "User_files/".$_FILES['image']['name']);
    //process the data

    //return response to the server

    echo json_encode(
                array(
                    'result'=>'success',
                    'msg'=>'Report added successfully.'
                    )
                );

                ?>

public void upload() throws Exception {
        //Url of the server
        String url = "URL";
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(url);
        MultipartEntity mpEntity = new MultipartEntity();
        //Path of the file to be uploaded
        String filepath = Environment.getExternalStorageDirectory()+"/a.png";
        File file = new File(filepath);
        ContentBody cbFile = new FileBody(file, "image/*");         

        //Add the data to the multipart entity
        mpEntity.addPart("image", cbFile);
        mpEntity.addPart("name", new StringBody("Test", Charset.forName("UTF-8")));
        mpEntity.addPart("data", new StringBody("This is test report", Charset.forName("UTF-8")));
        post.setEntity(mpEntity);
        //Execute the post request
        HttpResponse response1 = client.execute(post);
        //Get the response from the server
        HttpEntity resEntity = response1.getEntity();
        String Response=EntityUtils.toString(resEntity);
        Log.d("Response:", Response);
        //Generate the array from the response
        JSONArray jsonarray = new JSONArray("["+Response+"]");
        JSONObject jsonobject = jsonarray.getJSONObject(0);
        //Get the result variables from response 
        String result = (jsonobject.getString("result"));
        String msg = (jsonobject.getString("msg"));
        //Close the connection
        client.getConnectionManager().shutdown();
    }
Nirav Ranpara
  • 15,268
  • 4
  • 40
  • 57
  • I faced the same problem. Please check [my question here](http://stackoverflow.com/questions/12422541/how-to-send-multiple-images-to-server-using-multipartentity-from-android). – Hardik Joshi Apr 13 '13 at 11:34

1 Answers1

6

You need to give permission in your manifest file for WRITE_EXTERNAL_STORAGE and READ_EXTERNAL_STORAGE:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Hardik Joshi
  • 9,259
  • 11
  • 59
  • 110