編輯:關於Android編程
在android項目中,很多情況下上傳頭像的需求,像qq,新浪微博,微信,飛信等很多應用都有這樣的功能。
之前我寫過的兩篇文章:andorid下從相冊選取/拍照選取一張相片並剪切和android下Bitmap和base64之間的轉換把他們綜合起來,就可以來實現頭像從相冊/拍照選取,後裁剪再上傳的功能
完整源碼下載
這裡我只貼出上傳圖片的方法代碼,至於怎麼獲取到獲取到圖片,請看andorid下從相冊選取/拍照選取一張相片並剪切
/* * 上傳圖片 */ public void upload(View view) { try { ByteArrayOutputStream out = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); out.flush(); out.close(); byte[] buffer = out.toByteArray(); byte[] encode = Base64.encode(buffer, Base64.DEFAULT); String photo = new String(encode); RequestParams params = new RequestParams(); params.put("photo", photo); String url = "http://110.65.99.66:8080/jerry/UploadImgServlet"; AsyncHttpClient client = new AsyncHttpClient(); client.post(url, params, new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { try { if (statusCode == 200) { Toast.makeText(MainActivity.this, "頭像上傳成功!", 0) .show(); } else { Toast.makeText(MainActivity.this, "網絡訪問異常,錯誤碼:" + statusCode, 0).show(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { Toast.makeText(MainActivity.this, "網絡訪問異常,錯誤碼 > " + statusCode, 0).show(); } }); } catch (Exception e) { e.printStackTrace(); } }
這樣一操作,圖片就會按Base64編碼格式傳送到服務器,而服務器端的代碼也是非常簡單的
package com.jerry.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sun.org.apache.xml.internal.security.exceptions.Base64DecodingException; import com.sun.org.apache.xml.internal.security.utils.Base64; public class UploadImgServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html"); String photo = request.getParameter("photo"); try { // 對base64數據進行解碼 byte[] decode = Base64.decode(photo); File file = new File("e:\\decode.jpg"); if(!file.exists()) { file.createNewFile(); } FileOutputStream out = new FileOutputStream(file); out.write(decode); out.flush(); out.close(); } catch (Base64DecodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
前言這裡不討論[沉浸式]這個詞用得好不好, 大家聽得懂就行. 這篇文章主要是我在實際項目中的一些經驗, 整理出來和大家分享, 歡迎探討. 由於實習一直是996, 沒時間做
很多用戶不知道,其實在隨著用戶使用微信的時間推移,微信應用會產生大量的緩存文件,這樣久而久之會造成手機內存不足的問題,並且在手機運行速度方面也有所影響,故此
本文實例講述了Android編程實現向桌面添加快捷方式的方法。分享給大家供大家參考,具體如下:有時候為了使用方便,需要在桌面上添加快捷方式,下面是兩種添加快捷方式的方法:
Bluestacks安卓模擬器要怎麼安裝自己下載到電腦上的本地APK文件呢?如果你沒有安裝360助手之類的軟件,Bluestacks默認會關聯電腦上的APK