欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android編程實現(xiàn)圖片的上傳和下載功能示例

 更新時間:2016年10月29日 10:55:55   作者:pku_android  
這篇文章主要介紹了Android編程實現(xiàn)圖片的上傳和下載功能,涉及Android針對圖片的字節(jié)流轉換與傳輸操作相關技巧,需要的朋友可以參考下

本文實例講述了Android編程實現(xiàn)圖片的上傳和下載功能。分享給大家供大家參考,具體如下:

在實現(xiàn)一個Android的WEB服務客戶端,比如微博,論壇客戶端時,經(jīng)常會使用到圖片的上傳和下載。在這里介紹如何利用HttpClient實現(xiàn)圖片的上傳和下載功能。

1 圖片上傳:上傳圖片時,首先獲得圖片的路徑,創(chuàng)建文件,并將圖片轉化為字節(jié)流寫入到request,并發(fā)送該請求。

客戶端代碼:

File file = new File(imageUrl);
String httpUrl = httpDomain+"AddImageServlet"+"?gid="+gid;
HttpPost request = new HttpPost(httpUrl);
HttpClient httpClient = new DefaultHttpClient();
FileEntity entity = new FileEntity(file,"binary/octet-stream");
HttpResponse response;
try {
  request.setEntity(entity);
  entity.setContentEncoding("binary/octet-stream");
  response = httpClient.execute(request);
//如果返回狀態(tài)為200,獲得返回的結果
if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
……//圖片上傳成功
}
}
catch(Exception e){
}

服務器端所做的工作則是接收該字節(jié)流,寫入文件中,并在服務器中相應文件夾中保存該文件,并記錄該文件的路徑,將圖片文件路徑寫入到數(shù)據(jù)庫中保存。

服務器端代碼:

//獲得新聞id
String gid = request.getParameter("gid");
String filePath = getRealPath(request) + "\\userpic\\";
//   定義上載文件的最大字節(jié)
int MAX_SIZE = 102400 * 102400;
//   聲明文件讀入類
DataInputStream in = null;
FileOutputStream fileOut = null;
//   取得客戶端上傳的數(shù)據(jù)類型
String contentType = request.getContentType();
if(contentType.indexOf("binary/octet-stream") >= 0){
  //   讀入上傳的數(shù)據(jù)
  in = new DataInputStream(request.getInputStream());
  int formDataLength = request.getContentLength();
  // 如果圖片過大
  if(formDataLength > MAX_SIZE){
    String errormsg=("上傳的文件字節(jié)數(shù)不可以超過" + MAX_SIZE);
    out.println(errormsg);
    return ;
  }
//   保存上傳文件的數(shù)據(jù)
byte dataBytes[] = new byte[formDataLength];
int byteRead = 0;
int totalBytesRead = 0;
//   上傳的數(shù)據(jù)保存在byte數(shù)組
while(totalBytesRead < formDataLength){
byteRead = in.read(dataBytes,totalBytesRead,formDataLength);
totalBytesRead += byteRead;
 }
String fileName = filePath + gid+".png";
 //   檢查上載文件的目錄是否存在
File fileDir = new File(filePath);
if(!fileDir.exists()){
fileDir.mkdirs();
}
//   創(chuàng)建文件的寫出類
fileOut = new FileOutputStream(fileName);
//   保存文件的數(shù)據(jù)
fileOut.write(dataBytes);
fileOut.close();
//保存文件的路徑名
……

2 圖片下載:首先獲得網(wǎng)絡圖片的圖片地址,發(fā)送請求后,服務器將會返回該圖片的字節(jié)流,利用BitmapFactory.decodeStream()方法將字節(jié)流轉化為圖片并返回。具體代碼如下:

//獲得網(wǎng)絡中的圖片
public Bitmap getGossipImage(String gid){
    String httpUrl = httpDomain+"userpic/"+gid+".png";
    Bitmap bitmap = null;
    HttpGet httpRequest = new HttpGet(httpUrl);
    //取得HttpClient 對象
    HttpClient httpclient = new DefaultHttpClient();
    try {
      //請求httpClient ,取得HttpRestponse
      HttpResponse httpResponse = httpclient.execute(httpRequest);
      if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
        //取得相關信息 取得HttpEntiy
        HttpEntity httpEntity = httpResponse.getEntity();
        InputStream is = httpEntity.getContent();
        bitmap = BitmapFactory.decodeStream(is);
        is.close();
      }else{
         Toast.makeText(context, "連接失敗!", Toast.LENGTH_SHORT).show();
      }
    } catch (ClientProtocolException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
    return bitmap;
}

更多關于Android相關內容感興趣的讀者可查看本站專題:《Android圖形與圖像處理技巧總結》、《Android開發(fā)入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

相關文章

  • Android布局技巧之創(chuàng)建可重用的UI組件

    Android布局技巧之創(chuàng)建可重用的UI組件

    這篇文章主要為大家詳細介紹了Android布局技巧之創(chuàng)建可重用的UI組件,文中提到了include標簽的使用方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Android開發(fā)之基于DialogFragment創(chuàng)建對話框的方法示例

    Android開發(fā)之基于DialogFragment創(chuàng)建對話框的方法示例

    這篇文章主要介紹了Android開發(fā)之基于DialogFragment創(chuàng)建對話框的方法,結合實例形式分析了DialogFragment創(chuàng)建對話框的具體功能與布局相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-08-08
  • Android集成騰訊X5實現(xiàn)文檔瀏覽功能

    Android集成騰訊X5實現(xiàn)文檔瀏覽功能

    Android內部沒有控件來直接顯示文檔,跳轉WPS或其他第三方文檔App體驗性不好,使用騰訊X5內核能很好的解決的這一問題這篇文章主要介紹了Android集成騰訊X5實現(xiàn)文檔瀏覽功能,需要的朋友可以參考下
    2019-10-10
  • Android Studio中主題樣式的使用方法詳解

    Android Studio中主題樣式的使用方法詳解

    這篇文章主要介紹了Android Studio中主題樣式的使用方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Android RecyclerView滾動定位

    Android RecyclerView滾動定位

    這篇文章主要為大家詳細介紹了Android RecyclerView滾動定位的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android利用CountDownTimer實現(xiàn)驗證碼倒計時效果實例

    Android利用CountDownTimer實現(xiàn)驗證碼倒計時效果實例

    這篇文章主要給大家介紹了關于Android如何利用CountDownTimer實現(xiàn)驗證碼倒計時效果的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-10-10
  • 使用Flutter實現(xiàn)一個走馬燈布局的示例代碼

    使用Flutter實現(xiàn)一個走馬燈布局的示例代碼

    這篇文章主要介紹了使用 Flutter 實現(xiàn)一個走馬燈布局的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Android 通過Intent使用Bundle傳遞對象詳細介紹

    Android 通過Intent使用Bundle傳遞對象詳細介紹

    這篇文章主要介紹了Android 通過Intent使用Bundle傳遞對象詳細介紹的相關資料,并附實例代碼講解,具有一定的參考價值,需要的朋友可以參考下
    2016-11-11
  • Android實現(xiàn)簡單手電筒功能

    Android實現(xiàn)簡單手電筒功能

    這篇文章主要為大家詳細介紹了Android實現(xiàn)簡單手電筒,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Android編程實現(xiàn)GridView控件點擊圖片變暗效果的方法

    Android編程實現(xiàn)GridView控件點擊圖片變暗效果的方法

    這篇文章主要介紹了Android編程實現(xiàn)GridView控件點擊圖片變暗效果的方法,簡單分析了GridView控件事件響應及屬性操作的相關技巧,需要的朋友可以參考下
    2017-06-06

最新評論