android - How to upload image to server? -


i have searched many sites know how upload image server.i have seen 1 sample example.but not reading imaging internal memory of phone. have included mainactivity.java file.any suggestions please..

mainactivity.java

import java.io.dataoutputstream; import java.io.file; import java.io.fileinputstream; import java.net.httpurlconnection; import java.net.malformedurlexception; import java.net.url;  import android.app.activity; import android.app.progressdialog; import android.content.intent; import android.database.cursor; import android.graphics.bitmap; import android.graphics.bitmapfactory; import android.net.uri; import android.os.bundle; import android.provider.mediastore; import android.util.log; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.imageview; import android.widget.textview; import android.widget.toast;  public class mainactivity extends activity implements onclicklistener{      private textview messagetext;     private button uploadbutton, btnselectpic;     private imageview imageview;     private int serverresponsecode = 0;     private progressdialog dialog = null;      private string uploadserveruri = null;     private string imagepath=null;     @override     public void oncreate(bundle savedinstancestate) {          super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          uploadbutton = (button)findviewbyid(r.id.uploadbutton);         messagetext  = (textview)findviewbyid(r.id.messagetext);         btnselectpic = (button)findviewbyid(r.id.button_selectpic);         imageview = (imageview)findviewbyid(r.id.imageview_pic);          btnselectpic.setonclicklistener(this);         uploadbutton.setonclicklistener(this);         uploadserveruri = "http://192.168.0.15/uploadtoserver.php";     }       @override     public void onclick(view arg0) {         if(arg0==btnselectpic)         {             intent intent = new intent();             intent.settype("image/*");             intent.setaction(intent.action_get_content);             startactivityforresult(intent.createchooser(intent, "complete action using"), 1);         }         else if (arg0==uploadbutton) {               dialog = progressdialog.show(mainactivity.this, "", "uploading file...", true);              messagetext.settext("uploading started.....");              new thread(new runnable() {                  public void run() {                        uploadfile(imagepath);                   }                }).start();              }      }       @override     protected void onactivityresult(int requestcode, int resultcode, intent data) {         log.v("upload image", ""+data);         if (requestcode == 1 && resultcode == result_ok) {             //bitmap photo = (bitmap) data.getdata().getpath();               uri selectedimageuri = data.getdata();             imagepath = getpath(selectedimageuri);             bitmap bitmap=bitmapfactory.decodefile(imagepath);             imageview.setimagebitmap(bitmap);             messagetext.settext("uploading file path:" +imagepath);          }     }          public string getpath(uri uri) {                 string[] projection = { mediastore.images.media.data };                 cursor cursor = managedquery(uri, projection, null, null, null);                 int column_index = cursor.getcolumnindexorthrow(mediastore.images.media.data);                 cursor.movetofirst();                 return cursor.getstring(column_index);             }      public int uploadfile(string sourcefileuri) {             string filename = sourcefileuri;            httpurlconnection conn = null;           dataoutputstream dos = null;             string lineend = "\r\n";           string twohyphens = "--";           string boundary = "*****";           int bytesread, bytesavailable, buffersize;           byte[] buffer;           int maxbuffersize = 1 * 1024 * 1024;            file sourcefile = new file(sourcefileuri);             if (!sourcefile.isfile()) {                 dialog.dismiss();                  log.e("uploadfile", "source file not exist :"+imagepath);                 runonuithread(new runnable() {                    public void run() {                        messagetext.settext("source file not exist :"+ imagepath);                    }                });                  return 0;            }           else           {                try {                        // open url connection servlet                    fileinputstream fileinputstream = new fileinputstream(sourcefile);                    url url = new url(uploadserveruri);                     // 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("uploaded_file", filename);                      dos = new dataoutputstream(conn.getoutputstream());                     dos.writebytes(twohyphens + boundary + lineend);                     dos.writebytes("content-disposition: form-data; name=\"uploaded_file\";filename=\""                                              + filename + "\"" + lineend);                     dos.writebytes(lineend);                     // 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);                         }                     // send multipart form data necesssary after file data...                    dos.writebytes(lineend);                    dos.writebytes(twohyphens + boundary + twohyphens + lineend);                     // responses server (code , message)                    serverresponsecode = conn.getresponsecode();                    string serverresponsemessage = conn.getresponsemessage();                     log.i("uploadfile", "http response : "                             + serverresponsemessage + ": " + serverresponsecode);                     if(serverresponsecode == 200){                         runonuithread(new runnable() {                             public void run() {                                 string msg = "file upload completed.\n\n see uploaded file here : \n\n"                                       +" f:/wamp/wamp/www/uploads";                                 messagetext.settext(msg);                                 toast.maketext(mainactivity.this, "file upload complete.", toast.length_short).show();                             }                         });                                    }                         //close streams //                    fileinputstream.close();                    dos.flush();                    dos.close();                } catch (malformedurlexception ex) {                    dialog.dismiss();                     ex.printstacktrace();                    runonuithread(new runnable() {                       public void run() {                           messagetext.settext("malformedurlexception exception : check script url.");                           toast.maketext(mainactivity.this, "malformedurlexception", toast.length_short).show();                       }                   });                    log.e("upload file server", "error: " + ex.getmessage(), ex);                 } catch (exception e) {                    dialog.dismiss();                     e.printstacktrace();                    runonuithread(new runnable() {                       public void run() {                           messagetext.settext("got exception : see logcat ");                           toast.maketext(mainactivity.this, "got exception : see logcat ", toast.length_short).show();                       }                   });                   log.e("upload file server exception", "exception : "  + e.getmessage(), e);                 }               dialog.dismiss();                      return serverresponsecode;              } // end else block           }   } 

enter image description here

   multipartentity multipartentity = new multipartentity(httpmultipartmode.browser_compatible);             multipartentity.addpart("key", new stringbody("file"));             file file = new file(selectedimagepath);             multipartentity.addpart("file", new filebody(file));             httppost.setentity(multipartentity);             mhttpclient.execute(httppost, new photouploadresponsehandler()); 

and response methode:

 private class photouploadresponsehandler implements responsehandler<object> {          @override         public object handleresponse(httpresponse response)                 throws clientprotocolexception, ioexception {              httpentity r_entity = response.getentity();             //         string responsestring = entityutils.tostring(r_entity);              return null;         }      } 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -