How to upload a image to server using HttpPost in android?

筅森魡賤 提交于 2019-12-13 04:04:43

问题


Here is my code to send some DATA to php server in Json format using HttpPost. How can i upload a image along with the DATA ?

HttpPost httppost = new HttpPost(urlToSendCheckListReport);  
JSONObject json = new JSONObject();
        // prepare JSON data:
        json.put("tag_id", tagID);
        json.put("building_id", buildingID);
        json.put("timestamp", new SimpleDateFormat("dd-MM-yyyy, HH:mm:ss").format(Calendar.getInstance().getTime())); 

        JSONArray postjson=new JSONArray();
        postjson.put(json);  

        // Post the data:
        httppost.setHeader("json", json.toString());
        httppost.getParams().setParameter("jsonpost",postjson);  

   HttpResponse response = new DefaultHttpClient().execute(httppost);

    if(response != null)
    { 
     .....Read the response
    }

Thanks in advance


回答1:


Try with this:

HttpPost httppost = new HttpPost(urlToSendCheckListReport);  
JSONObject json = new JSONObject();
    // prepare JSON data:
    json.put("tag_id", tagID);
    json.put("building_id", buildingID);
    json.put("timestamp", new SimpleDateFormat("dd-MM-yyyy, HH:mm:ss").format(Calendar.getInstance().getTime())); 

    JSONArray postjson=new JSONArray();
    postjson.put(json);  

    // IMAGE
    BitmapFactory.Options o2 = new BitmapFactory.Options();
    o2.inSampleSize = scale;
    bitmap = BitmapFactory.decodeFile(filePath, o2);
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);
    byte[] data = bos.toByteArray();
    String mediaString = Base64.encodeBytes(data);
    // /IMAGE

    // Post the data:
    httppost.setHeader("json", json.toString());
    httppost.getParams()
    .setParameter("jsonpost",postjson)
    .setParameter("image", new StringBody(mediaString));  //ADD IMAGE PARAMETER

   HttpResponse response = new DefaultHttpClient().execute(httppost);

    if(response != null)
    { 
     .....Read the response
    }



回答2:


HttpPost httppost = new HttpPost(urlToSendCheckListReport);  
      JSONObject json = new JSONObject();
    // prepare JSON data:
    json.put("tag_id", tagID);
    json.put("building_id", buildingID);
    json.put("timestamp", new SimpleDateFormat("dd-MM-yyyy, HH:mm:ss").format(Calendar.getInstance().getTime())); 

    JSONArray postjson=new JSONArray();
    postjson.put(json);  

    StringEntity entity = null;
     try {
                    entity = new StringEntity(entityString);
                    entity.setContentType("application/json");
            } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
            }
    httppost.setEntity(entity);
    // Post the data:
    httppost.setHeader("json", json.toString());
    httppost.getParams().setParameter("jsonpost",postjson);  

HttpResponse response = new DefaultHttpClient().execute(httppost);

if(response != null)
{ 
 .....Read the response
}


来源:https://stackoverflow.com/questions/8152159/how-to-upload-a-image-to-server-using-httppost-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!