Android upload image to server

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>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.