zoukankan      html  css  js  c++  java
  • Android之Okhttp上传下载文件

    OkHttp异步上传文件:

    1.确定上传文件的类型:

    public static final MediaType MEDIA_TYPE_MARKDOWN=MediaType.parse(“text/x-markdown;charset=utf-8”);

    2.获取文件的路径

    2.1首先要添加sd卡的读写权限

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

    2.2判断当前设备是否挂载了SD卡

    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
    			|| !Environment.isExternalStorageRemovable()) {
            //有SD卡
    		
    	} else {
    		//没有SD卡
    	}

    2.3获取路径的接口

    String path= Environment.getExternalStorageDirectory().getAbsolutePath();

    2.4如果是模拟器则可以在这个路径下放入文档

    3.构造文件

    3.1File file=new File(path,"xx.txt");
    3.2作为参数传入post中

    post(RequestBody.create(MEDIA_TYPE_MARKDOWN,file));

    3.3如何监听上传的进度呢?待解答!






    Okhttp异步文件下载

    1.InputStream is=response.body().byteStream();//获取输入流
    2.确定文件下载到设备的地址

    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
    	//挂载了sd卡
    	filepath=Environment.getExternalStorageDirectory().getAbsolutePath();
    }else{
    	filepath=getFilesDir().getAbsolutePath();
    }
    File file=new File(filepath,"文件名");

    3.将输入流通过FileOutputStream输入到该file文件中

    FileOutputStream fos=new FileOutputStream(file);
    byte[] buffer=new byte[2048];//缓冲区
    int length=0;
    while((length=is.read(buffer))!=-1){
    	//如果没读完,继续将数据读入buffer中
    	fos.write(buffer,0,len);
    	//将buffer中的内容写到file中
    
    }

    4.异步上传Multipart文件

    RequestBody reqeustBody=new MultipartBody.Builder().setType(Multipart.FROM)
    .addFormDataPart("key","value").RequestBody.create(MediaType.prase("image/png"),new File(path))).build();
  • 相关阅读:
    codevs1231 最优布线问题
    P1352 没有上司的舞会——树形DP入门
    codevs1961 躲避大龙
    codevs2833 奇怪的梦境
    linux 内存管理——内核的shmall 和shmmax 参数
    删除共享内存后key为0x00000000的问题
    redis命令之lrange
    vim配置vimrc详解
    chmod chgrp chown
    localtime和localtime_r
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13309498.html
Copyright © 2011-2022 走看看