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命令导入到本地电脑查看

 

人已赞赏
Android文章

Android webview加载页面

2021-2-1 10:09:52

Android文章

Android开发之sqlite

2021-2-1 10:52:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索