Android upload image to server using base64
13,226
Try this code once.
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 90, bao);
byte[] ba = bao.toByteArray();
String ba1 = Base64.encodeBytes(ba);
ArrayList < NameValuePair > nameValuePairs = new
ArrayList < NameValuePair > ();
nameValuePairs.add(new BasicNameValuePair("image", ba1));
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost("URL STRING");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
//Toast.makeText(SignUpActivity.this, "Joining Failed", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
}
I can help you if you have any doubt.
Author by
GTID
Updated on June 04, 2022Comments
-
GTID almost 2 years
I am uploading image to server using base64 its working fine if image is small but if image is big it gives me memory out exception
try { ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); bitmap.recycle(); byte[] byteArray = stream.toByteArray(); stream.close(); stream = null; String ba1 = Base64.encodeToString(byteArray, Base64.DEFAULT); bitmap = null; System.gc(); // immediately free bitmap byteArray = null; System.gc(); HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(Data.upload_photo); JSONObject jsonObj = new JSONObject(); jsonObj.put("user_id", LoginParser.id); int cnt = ba1.length() / 4; System.out.println("cnt=>" + cnt); jsonObj.put("image", ba1); jsonObj.put("caption", edt_caption.getText().toString()); // Create the POST object and add the parameters /* * StringEntity entity = new StringEntity(jsonObj.toString(), * HTTP.UTF_8); System.out.println(entity); * entity.setContentType("application/json"); * httppost.setEntity(entity); * * HttpResponse response = httpclient.execute(httppost); */ StringEntity se = new StringEntity(jsonObj.toString()); // se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, // "application/json")); se.setContentType("application/json"); httppost.setEntity(se); HttpResponse response = httpclient.execute(httppost); String result = EntityUtils.toString(response.getEntity()); System.out.println("=>=>" + result); JSONObject jsonObject = new JSONObject(result); if (jsonObject.getString("status").equals("success")) return "success"; else return jsonObject.getString("message"); } catch (IOException e) { e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; }
-
Chintan Khetiya about 11 yearsi am using same code but still its giving me
java.lang.OutOfMemoryError