1. 程式人生 > >Android xutil上傳下載檔案

Android xutil上傳下載檔案

1.在build.gradle下加入compile 'org.xutils:xutils:3.5.0'

2.在AndroidManifest.xml下加入許可權

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

3.在Application檔案按的oncreate方法下加入:

  x.Ext.init(this);
 //x.Ext.setDebug(BuildConfig.DEBUG); // 是否輸出debug日誌, 開啟debug會影響效能.

4.上傳圖片:

public void uploadPhoto(String filePath, String url) {

   HttpUtils httpUtils = new HttpUtils(30000);
   RequestParams params = new RequestParams();
   params.addBodyParameter("file", new File(filePath));
    //以post的方式上傳圖片
   httpUtils.send(HttpMethod.POST, url, params, new RequestCallBack<String>() {
      @Override
      public void onFailure(HttpException arg0, String arg1) {
         result = " ";
         showInfo("上傳失敗");
      }

      @Override
      public void onSuccess(ResponseInfo<String> arg0) {
         try {
            List<UploadImage> uploadimageList = (ArrayList<UploadImage>) JsonUitl.stringToList(arg0.result, UploadImage.class);
            if (uploadimageList.size() > 0) {
               result = uploadimageList.get(0).getUrl();
            }
         } catch (Exception r) {
            String s = r.getMessage();
         }
      }

   });

}

5 .下載圖片

ExecutorService executorService = Executors.newCachedThreadPool();
try {
    JSONArray jsonArray=new JSONArray(result);
    if(jsonArray.length()>0){
        for(int i=0;i<jsonArray.length();i++) {
            final JSONObject jsonObject = (JSONObject) jsonArray.get(i);
            executorService.execute(new Runnable() {
                @Override
                public void run() {
                    try {
                         //圖片的請求路徑
                        RequestParams requestParams = new RequestParams("http://**************/"+jsonObject.getString("resourceAddress"));
                       //圖片儲存在本地路徑                 requestParams.setSaveFilePath("/sdcard/tudou/"+jsonObject.getString("resourceAddress"));
                        x.http().get(requestParams, new Callback.ProgressCallback<File>() {
                            //等待時回撥方法
                            @Override
                            public void onWaiting() {
                               
                            }
                            //開始後回撥方法
                            @Override
                            public void onStarted() {

                            }
                            //載入時回撥方法
                            @Override
                            public void onLoading(long total, long current, boolean isDownloading) {

                            }
                            //下載成功的回撥方法
                            @Override
                            public void onSuccess(File result) {
                                 
                            }
                            //出錯時回撥方法
                            @Override
                            public void onError(Throwable ex, boolean isOnCallback) {

                            }
                            //取消時回撥方法
                            @Override
                            public void onCancelled(CancelledException cex) {

                            }  
                            //完成時回撥方法
                            @Override
                            public void onFinished() {

                            }
                        });

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });

        }
    }
} catch (Exception e) {
    e.printStackTrace();
}             

6.使用adb命令檢視下載結果:

   

7.使用adb命令匯入到本地電腦檢視