最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

客戶端代碼:

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,獲得返回的結(jié)果
if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
……//圖片上傳成功
}
}
catch(Exception e){
}

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

服務(wù)器端代碼:

//獲得新聞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)絡(luò)圖片的圖片地址,發(fā)送請(qǐng)求后,服務(wù)器將會(huì)返回該圖片的字節(jié)流,利用BitmapFactory.decodeStream()方法將字節(jié)流轉(zhuǎn)化為圖片并返回。具體代碼如下:

//獲得網(wǎng)絡(luò)中的圖片
public Bitmap getGossipImage(String gid){
    String httpUrl = httpDomain+"userpic/"+gid+".png";
    Bitmap bitmap = null;
    HttpGet httpRequest = new HttpGet(httpUrl);
    //取得HttpClient 對(duì)象
    HttpClient httpclient = new DefaultHttpClient();
    try {
      //請(qǐng)求httpClient ,取得HttpRestponse
      HttpResponse httpResponse = httpclient.execute(httpRequest);
      if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
        //取得相關(guān)信息 取得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;
}

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

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Android APP與媒體存儲(chǔ)服務(wù)的交互

    Android APP與媒體存儲(chǔ)服務(wù)的交互

    本文介紹如何在 Android 中,開發(fā)者的 APP 如何使用媒體存儲(chǔ)服務(wù)(包含MediaScanner、MediaProvider以及媒體信息解析等部分),包括如何把 APP 新增或修改的文件更新到媒體數(shù)據(jù)庫(kù)、如何在多媒體應(yīng)用中隱藏 APP 產(chǎn)生的文件、如何監(jiān)聽媒體數(shù)據(jù)庫(kù)的變化等等。
    2013-10-10
  • 一篇文章弄懂kotlin的擴(kuò)展方法

    一篇文章弄懂kotlin的擴(kuò)展方法

    這篇文章主要給大家介紹了如何通過一篇文章弄懂kotlin的擴(kuò)展方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用kotlin具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 當(dāng)Flutter遇到節(jié)流與防抖的思路和流程優(yōu)化

    當(dāng)Flutter遇到節(jié)流與防抖的思路和流程優(yōu)化

    這篇文章主要給大家介紹了關(guān)于當(dāng)Flutter遇到節(jié)流與防抖的思路和流程優(yōu)化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • android繪制幾何圖形的實(shí)例代碼

    android繪制幾何圖形的實(shí)例代碼

    這篇文章主要為大家詳細(xì)介紹了android繪制幾何圖形的實(shí)例代碼 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Android自定義videoview仿抖音界面

    Android自定義videoview仿抖音界面

    這篇文章主要為大家詳細(xì)介紹了Android自定義videoview仿抖音界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Android編程之單元測(cè)試實(shí)例分析

    Android編程之單元測(cè)試實(shí)例分析

    這篇文章主要介紹了Android編程之單元測(cè)試,結(jié)合具體實(shí)例分析了Android單元測(cè)試的具體實(shí)現(xiàn)步驟與相關(guān)注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • Android 8.0系統(tǒng)中應(yīng)用圖標(biāo)的適配微技巧

    Android 8.0系統(tǒng)中應(yīng)用圖標(biāo)的適配微技巧

    這篇文章主要介紹了Android 8.0系統(tǒng)中應(yīng)用圖標(biāo)的適配微技巧 ,需要的朋友可以參考下
    2018-04-04
  • Android App中的GridView網(wǎng)格布局使用指南

    Android App中的GridView網(wǎng)格布局使用指南

    GridView布局所實(shí)現(xiàn)的就是類似于九宮格的矩陣界面效果,下面整理了Android App中的GridView網(wǎng)格布局使用指南,包括分割線的添加與自定義GridView的實(shí)現(xiàn)等技巧,需要的朋友可以參考下
    2016-06-06
  • Android中findViewById返回為空null的快速解決辦法

    Android中findViewById返回為空null的快速解決辦法

    這篇文章主要介紹了Android中findViewById返回為空null的快速解決辦法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • Android 在 res/layout 文件夾 下創(chuàng)建一個(gè) 子文件夾實(shí)例

    Android 在 res/layout 文件夾 下創(chuàng)建一個(gè) 子文件夾實(shí)例

    這篇文章主要介紹了Android 在 res/layout 文件夾 下創(chuàng)建一個(gè) 子文件夾實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-03-03

最新評(píng)論

铅山县| 额济纳旗| 衡阳县| 凉山| 潞城市| 丰县| 诏安县| 柳州市| 天柱县| 镇巴县| 奇台县| 陈巴尔虎旗| 通道| 资阳市| 文昌市| 德阳市| 蓬安县| 绥宁县| 洛南县| 旬邑县| 林芝县| 江安县| 琼海市| 建瓯市| 天长市| 沙雅县| 竹溪县| 福清市| 曲沃县| 聂拉木县| 武汉市| 新河县| 沙坪坝区| 宜丰县| 元江| 澎湖县| 儋州市| 出国| 那坡县| 甘孜| 颍上县|