How to send image with url in android -
image not able reach on database
my doinbackground() method
try { file file_name=new file("/storage/sdcard1/received/iaf-sarang.jpg"); defaulthttpclient mhttpclient; httpparams par = new basichttpparams(); par.setparameter(coreprotocolpnames.protocol_version, httpversion.http_1_1); mhttpclient = new defaulthttpclient(par); try { httppost httppost = new httppost("http://www.hugosys.in/www.nett-torg.no/api/rpcs/uploadfiles/?"); multipartentity multipartentity = new multipartentity(httpmultipartmode.browser_compatible); multipartentity.addpart("post_id", new stringbody("1368")); multipartentity.addpart("user_id", new stringbody("62")); multipartentity.addpart("files", new filebody(file_name, "content-type: image/jpeg\r\n\r\n")); httppost.setentity(multipartentity); mhttpclient.execute(httppost, new photouploadresponsehandler()); } catch (exception e) { e.printstacktrace(); system.out.println(""+e); } } catch (exception e) { // todo auto-generated catch block e.printstacktrace(); } return response_string;
here photouploadresponsehandler class
private class photouploadresponsehandler implements responsehandler<object> { @override public object handleresponse(httpresponse response) throws clientprotocolexception, ioexception { httpentity r_entity = response.getentity(); string rstring = entityutils.tostring(r_entity); log.d("upload", rstring); response_string=rstring; return rstring; } }
there 1 more block of code have tried in post_id not reached
image posted sucessfully
// open url connection servlet fileinputstream fileinputstream = new fileinputstream(sourcefile); url url = new url("http://www.hugosys.in/www.nett-torg.no/api/rpcs/uploadfiles/?"); // open http connection url conn = (httpurlconnection) url.openconnection(); conn.setdoinput(true); // allow inputs conn.setdooutput(true); // allow outputs conn.setusecaches(false); // don't use cached copy conn.setrequestmethod("post"); conn.setrequestproperty("connection", "keep-alive"); conn.setrequestproperty("enctype", "multipart/form-data"); conn.setrequestproperty("content-type", "multipart/form-data;boundary="+boundary); conn.setrequestproperty("post_id", "1368"); conn.setrequestproperty("user_id", "62"); conn.setrequestproperty("files", file_name); dos = new dataoutputstream(conn.getoutputstream()); dos.writebytes(twohyphens + boundary + lineend); dos.writebytes("content-disposition: form-data;name=files[];filename="+file_name+""+ lineend); //dos.writebytes("content-type: application/octet-stream\r\n\r\n"); // "image/jpeg" dos.writebytes("content-type: image/jpeg\r\n\r\n"); // create buffer of maximum size bytesavailable = fileinputstream.available(); buffersize = math.min(bytesavailable, maxbuffersize); buffer = new byte[buffersize]; // read file , write form... bytesread = fileinputstream.read(buffer, 0, buffersize); while (bytesread > 0) { dos.write(buffer, 0, buffersize); bytesavailable = fileinputstream.available(); buffersize = math.min(bytesavailable, maxbuffersize); bytesread = fileinputstream.read(buffer, 0, buffersize); } dos.writebytes(lineend); dos.writebytes(twohyphens + boundary + twohyphens + lineend); // send multipart form data necesssary after file data... // responses server (code , message) int serverresponsecode = conn.getresponsecode(); serverresponsemessage = conn.getresponsemessage(); is=conn.getinputstream(); log.i("uploadfile", "http response : "+ serverresponsemessage + ": " + serverresponsecode); inputstreamreader inputstreamreader = new inputstreamreader(is); bufferedreader bufferedreader = new bufferedreader(inputstreamreader); string bufferedstrchunk = null; while((bufferedstrchunk = bufferedreader.readline()) != null){ stringbuilder.append(bufferedstrchunk); } //close streams // fileinputstream.close(); dos.flush(); dos.close();
have code uploading image other data on server using php webservices...
code upload button...
upload = (button) findviewbyid(r.id.button1); upload.setonclicklistener(new view.onclicklistener() { public void onclick(view v) { bitmap= bitmapfactory.decoderesource(getresources(), r.drawable.img); new imageuploadtask().execute(); } });
this async task upload image data on server...
class imageuploadtask extends asynctask<void, void, string> { private stringbuilder s; @override protected void onpreexecute() { // todo auto-generated method stub super.onpreexecute(); mprogress = new progressdialog(mainactivity.this); mprogress.setmessage("loading"); mprogress.setprogressstyle(progressdialog.style_spinner); mprogress.setcancelable(false); mprogress.show(); } @override protected string doinbackground(void... unsued) { try { string sresponse = ""; string url = "http://www.hugosys.in/www.nett-torg.no/api/rpcs/uploadfiles/?"; httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(url); multipartentity entity = new multipartentity(); bytearrayoutputstream bos = new bytearrayoutputstream(); bitmap.compress(compressformat.jpeg, 100, bos); byte[] data = bos.tobytearray(); entity.addpart("post_id", new stringbody("1368")); entity.addpart("user_id", new stringbody("62")); entity.addpart("files[]", new bytearraybody(data,"image/jpeg", "test2.jpg")); httppost.setentity(entity); httpresponse response = httpclient.execute(httppost); bufferedreader reader = new bufferedreader(new inputstreamreader(response.getentity().getcontent(), "utf-8")); s = new stringbuilder(); while ((sresponse = reader.readline()) != null) { s = s.append(sresponse); } if(response.getstatusline().getstatuscode() == httpstatus.sc_ok) { return s.tostring(); }else { return "{\"status\":\"false\",\"message\":\"some error occurred\"}"; } } catch (exception e) { toast.maketext(getapplicationcontext(), e.getmessage(), toast.length_long).show(); return null; } } @override protected void onpostexecute(string sresponse) { try { mprogress.dismiss(); if (sresponse != null) { toast.maketext(getapplicationcontext(), sresponse + " photo uploaded successfully",toast.length_short).show(); } } catch (exception e) { toast.maketext(getapplicationcontext(), e.getmessage(), toast.length_long).show(); log.e(e.getclass().getname(), e.getmessage(), e); } } }
add permission in manifest.xml..
<uses-permission android:name="android.permission.internet"/>
Comments
Post a Comment