Uri 转为 File (顺带记下Retrofit上传文件)

Uri 转为 File

           //uri转为file
            Uri uri; //获取到的uri
            String[] arr = {MediaStore.Images.Media.DATA};
            Cursor cursor = getContentResolver().query(uri, arr, null, null, null);
            if (cursor != null) {
                int img_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                cursor.moveToFirst();
                String img_path = cursor.getString(img_index);
                File file = new File(img_path); //得到的File
                cursor.close(); //释放资源
            } else {
                ToastUtils.showShort("cursor: null");
            }

Retrofit上传文件

         
        File imgFile;//模拟的File文件
        /**
        *  下面两步把File转为了MultipartBody.Part,才能使用retrofit上传
        *  MultipartBody.Part.createFormData()的一参:"file"是后台指定的key
        **/
        RequestBody photoRequestBody = RequestBody.create(MediaType.parse("image/*"), imgFile);
        MultipartBody.Part userImage = MultipartBody.Part.createFormData("file", imgFile.getName(), photoRequestBody);
       
        //使用retrofit上传文件
        RetrofitUtils.getInstance().getApiServier(IMapService.class)
                .fileUpload(userImage, UserUtil.getUserToken())
                ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值