Android upload image to server
Last Update:2015-07-11
Source: Internet
Author: User
<span id="Label3"></p><p><p><span style="font-size: 16px;"><strong>One. Android needs to import the jar package for the asynchronous request Asynchttpclient</strong></span></p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Static</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Reg<span style="color: #0000ff;"><span style="color: #0000ff;">Final</span></span><span style="color: #000000;"><span style="color: #000000;">Context cont,bitmap photodata,string Regdata) { </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Try</span></span><span style="color: #000000;"><span style="color: #000000;">{bytearrayoutputstream BAOs</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Bytearrayoutputstream (); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Bitmap-byte Throttle Output Bitmap.CompressFormat.PNG compression format, 100: compression ratio, baos: bytes Stream</span></span>Photodata.compress (Bitmap.CompressFormat.PNG, 100<span style="color: #000000;"><span style="color: #000000;">, baos); Baos.close (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">byte</span></span>[] buffer =<span style="color: #000000;"><span style="color: #000000;">Baos.tobytearray ();</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">encrypt the Picture's byte stream data into a base64 character output</span></span>String photo = base64.encodetostring (buffer, 0<span style="color: #000000;"><span style="color: #000000;">, buffer.length,base64.default); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Photo=urlencoder.encode (photo, "UTF-8");</span></span>Requestparams params =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Requestparams (); Params.put (</span></span>"photo"<span style="color: #000000;"><span style="color: #000000;">, photo); Params.put (</span></span>"name", "woshishishi");<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">transfer of character data</span></span>String URL = "http://10.0.2.2:8080/IC_Server/servlet/RegisterServlet1"<span style="color: #000000;"><span style="color: #000000;">; Asynchttpclient Client</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">asynchttpclient (); Client.post (url, params,</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Asynchttpresponsehandler () {@Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Onsuccess (<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">statusCode, String Content) {toast.maketext (cont,</span></span>"avatar uploaded successfully!" +content, 0<span style="color: #000000;"><span style="color: #000000;">). Show (); } @Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">onfailure (throwable e, String data) {toast.maketext (cont,</span></span>"avatar Upload failed!", 0<span style="color: #000000;"><span style="color: #000000;">). Show (); } }); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Catch</span></span><span style="color: #000000;"><span style="color: #000000;">(Exception E) {e.printstacktrace (); } }<br><br><span style="font-size: 16px;"><strong>Two. Server Code (with SPRINGMVC)<br><br></strong></span></span></span></pre><pre>@RequestMapping ("/post"<span style="color: #000000;"><span style="color: #000000;">) </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">Post (httpservletresponse response, post post</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">, Multipartfile image</span></span><span style="color: #000000;"><span style="color: #000000;">, String Image)</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">throws</span></span><span style="color: #000000;"><span style="color: #000000;">Ioexception{Receipt Receipt</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Receipt (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Try</span></span><span style="color: #000000;"><span style="color: #000000;"> { </span></span><span style="color: #008000;"><span style="color: #008000;">/*</span></span><span style="color: #008000;">Binary stream upload picture if (image!=null && image.getoriginalfilename ()!=null && image.getoriginalfilename ( ). length () >0) {//original name String originalfilename = Image.getoriginalfilename (); New picture name String NewFileName = uuid.randomuuid () + originalfilename.substring (originalfilename.lastindex of (".")); String savename = Imageutil.findfilepathbyfilename (newfilename); System.out.println ("o______________________________________k"); New image File NewFile = new file (savename); If (!newfile.exists ()) {newfile.mkdir (); }//writes in-memory data to disk Image.transferto (newFile); System.out.println ("o______________________________________"); Write the name of the new picture into the Itemscustom post.setimg (newfilename); }else {post.setimg (""); }</span><span style="color: #008000;"><span style="color: #008000;">*/</span></span> <span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">================================= string Receive file</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(image!=<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span>&& image.length () >0<span style="color: #000000;"><span style="color: #000000;">){ </span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">byte</span></span>[] photoimg =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Base64decoder (). Decodebuffer (image); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> for</span>(<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>i = 0; I < photoimg.length; ++<span style="color: #000000;"><span style="color: #000000;">I) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(photoimg[i] < 0<span style="color: #000000;"><span style="color: #000000;">) { </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Adjust Exception Data</span></span>photoimg[i] + = 256<span style="color: #000000;"><span style="color: #000000;">; } } </span></span>String NewFileName = uuid.randomuuid () + ". png"<span style="color: #000000;"><span style="color: #000000;">; String Savename</span></span>=<span style="color: #000000;"><span style="color: #000000;">Imageutil.findfilepathbyfilename (newfilename); File NewFile</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">File (savename); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(!<span style="color: #000000;"><span style="color: #000000;">newfile.exists ()) {newfile.createnewfile (); } FileOutputStream</span> out</span>=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">FileOutputStream (newFile); Out.write (photoimg); Out.flush (); Out.close (); Post.setimg (newfilename); Logger.debug (</span></span>"file received successfully"<span style="color: #000000;"><span style="color: #000000;">); }</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Else</span></span><span style="color: #000000;"><span style="color: #000000;">{post.setimg (</span></span>""<span style="color: #000000;"><span style="color: #000000;">); }</span></span></pre><pre><pre></pre></pre><p><p>Three. Tool Class</p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Static</span></span>String rootpathstring = "webroot/web-inf/upload"<span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Static</span></span><span style="color: #000000;"><span style="color: #000000;">string Findfilepathbyfilename (string FileName) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(fileName = =<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span>||<span style="color: #000000;"><span style="color: #000000;">Filename.trim (). isEmpty ()) { </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span>"/default.png"<span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>Hashcode =<span style="color: #000000;"><span style="color: #000000;">Filename.hashcode (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>Dir1 = hashcode&0xf;<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">0--15</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>Dir2 = (hashcode&0xf0) >>4;<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">0-15</span></span>String dir = rootpathstring + "/" + dir1 + "/" + dir2;<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">upload\2\3 upload\3\5</span></span>File File =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">File (dir); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(!<span style="color: #000000;"><span style="color: #000000;">file.exists ()) { </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Create a directory</span></span><span style="color: #000000;"><span style="color: #000000;">File.mkdirs (); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span>dir+ "/" +<span style="color: #000000;"><span style="color: #000000;">fileName; }</span></span></pre><p><p></p></p><pre><pre><span style="color: #000000;"><span style="font-size: 16px;"><strong><br></strong></span><br><br></span></pre></pre><p><p></p></p><p><p>Nchttpclient</p></p><p><p>Android upload image to server</p></p></span>