i'm trying send base64 encoded images server using httpurlconnection. problem i'm having images gets sent successfully, generate filenotfound exception. code encoding image can found below.
public static string encodeimage(bitmap thumbnail) { bytearrayoutputstream baos = new bytearrayoutputstream(); thumbnail.compress(bitmap.compressformat.jpeg, 100, baos); byte[] b = baos.tobytearray(); string imageencoded = base64.encodetostring(b,base64.url_safe); return imageencoded; }
when change line:
string imageencoded = base64.encodetostring(b,base64.url_safe);
to:
string imageencoded = base64.encodetostring(b,base64.default);
then images generate filenotfoundexception , gets sent server successfully.
below code httpurlconnection:
public class httpmanager { public static string getdata(requestpackage p) { bufferedreader reader = null; string uri = p.geturi(); if (p.getmethod().equals("get")) { uri += "?" + p.getencodedparams(); } try { url url = new url(uri); httpurlconnection con = (httpurlconnection) url.openconnection(); con.setrequestmethod(p.getmethod()); if (p.getmethod().equals("post")) { con.setdooutput(true); outputstreamwriter writer = new outputstreamwriter(con.getoutputstream()); writer.write(p.getencodedparams()); //url encoded parameters writer.flush(); } stringbuilder sb = new stringbuilder(); reader = new bufferedreader(new inputstreamreader(con.getinputstream())); string line; while ((line = reader.readline()) != null) { sb.append(line + "\n"); } return sb.tostring(); } catch (exception e) { e.printstacktrace(); return null; } { if (reader != null) { try { reader.close(); } catch (ioexception e) { e.printstacktrace(); return null; } } } } }
any appreciated. thanks
i had same problem. use code below fine:
public class mainactivity extends appcompatactivity { int select_picture = 101; int capture_image = 102; button getimage; imageview selectedimage; string encodedimage; jsonobject jsonobject; jsonobject response; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); getimage = (button) findviewbyid(r.id.get_image); selectedimage = (imageview) findviewbyid(r.id.selected_image); final alertdialog.builder builder = new alertdialog.builder(mainactivity.this); builder.settitle("profile picture"); builder.setmessage("chooose from?"); builder.setpositivebutton("gallery", new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialog, int which) { intent intent = new intent(intent.action_pick, mediastore.images.media.external_content_uri); startactivityforresult(intent, select_picture); } }); builder.setnegativebutton("cancel", null ); } @override protected void onactivityresult(int requestcode, int resultcode, intent data) { // check request we're responding if (requestcode == select_picture) { // make sure request successful log.d("vicky","i'm out."); if (resultcode == result_ok && data != null && data.getdata() != null) { uri selectedimageuri = data.getdata(); bitmap selectedimagebitmap = null; try { selectedimagebitmap = mediastore.images.media.getbitmap(getcontentresolver(), selectedimageuri); } catch (ioexception e) { e.printstacktrace(); } selectedimage.setimagebitmap(selectedimagebitmap); bytearrayoutputstream bytearrayoutputstream = new bytearrayoutputstream(); selectedimagebitmap.compress(bitmap.compressformat.jpeg, 100, bytearrayoutputstream); byte[] bytearrayimage = bytearrayoutputstream.tobytearray(); encodedimage = base64.encodetostring(bytearrayimage, base64.default); log.d("vicky","i'm in."); new uploadimages().execute(); } } } private class uploadimages extends asynctask<void, void, void> { @override protected void onpreexecute() { } @override protected void doinbackground(void... params) { try { log.d("vicky", "encodedimage = " + encodedimage); jsonobject = new jsonobject(); jsonobject.put("imagestring", encodedimage); jsonobject.put("imagename", "+917358513024"); string data = jsonobject.tostring(); string yoururl = "http://54.169.88.65/events/eventmain/upload_image.php"; url url = new url(yoururl); httpurlconnection connection = (httpurlconnection) url.openconnection(); connection.setdooutput(true); connection.setdoinput(true); connection.setrequestmethod("post"); connection.setfixedlengthstreamingmode(data.getbytes().length); connection.setrequestproperty("content-type", "application/json;charset=utf-8"); outputstream out = new bufferedoutputstream(connection.getoutputstream()); bufferedwriter writer = new bufferedwriter(new outputstreamwriter(out, "utf-8")); writer.write(data); log.d("vicky", "data php = " + data); writer.flush(); writer.close(); out.close(); connection.connect(); inputstream in = new bufferedinputstream(connection.getinputstream()); bufferedreader reader = new bufferedreader(new inputstreamreader( in, "utf-8")); stringbuilder sb = new stringbuilder(); string line = null; while ((line = reader.readline()) != null) { sb.append(line); } in.close(); string result = sb.tostring(); log.d("vicky", "response php = " + result); //response = new jsonobject(result); connection.disconnect(); } catch (exception e) { log.d("vicky", "error encountered"); e.printstacktrace(); } return null; } @override protected void onpostexecute(void args) { } } }
Comments
Post a Comment