android 使用Retrofit2 RxJava 文件上传

private static void upload(final Context context, final int type, File logFile) {
        Map<String, RequestBody> map = new HashMap<>();
        if (logFile != null && logFile.length() > 0) {
            map.put(parseMapKey("file", logFile.getName()), parseRequestBody(logFile));
        }

        ApiFactory.getInstance().getApiService().uploadLog(map)
                .compose(RxSchedulers.<List<String>>combine())
                .subscribe(new RxSubscriber1<List<String>>() {
                    @Override
                    public void onError(ApiException e) {
                        LogUtil.w("upload onFailure: ");
                    }

                    @Override
                    public void onNext(List<String> filePaths) {
                        if (!CommonUtil.isEmpty(filePaths))//上传成功
                        {
                            LogUtil.w("upload succ,filePath:" + filePaths.get(0));
                            DebugHelp.PrintLine("upload succ,filePath:" + filePaths.get(0));
                        }
                        File dir;
                        if (type == UPLOAD_TYPE_FUNCTION) {
                            dir = LogCollectorUtility.getExternalDir(context, Constants.FUNCTION_DIR_NAME);
                        } else {
                            dir = LogCollectorUtility.getExternalDir(context, Constants.DIR_NAME);
                        }
                        FileToZip.recursionDeleteFile(dir);
                    }
                });
    }


    public static RequestBody parseRequestBody(File file) {
        return RequestBody.create(MediaType.parse("multipart/form-data"), file);
    }

    public static String parseMapKey(String key, String fileName) {
        return key + "\"; filename=\"" + fileName;
    }
/**
     * 上传日志
     *
     * @return
     */
    @Multipart
    @POST("v1/app/exception")
    Observable<ResponseBean<List<String>>> uploadLog(@PartMap Map<String, RequestBody> map);

  

转载于:https://www.cnblogs.com/baiyi168/p/9087247.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值