private void uplaodFile2(final File file) {
String token = PreferenceUtils.getString(mainActivity,"token" , null);
MultipartBody.Part tokenPart = MultipartBody.Part.createFormData("token", token);
RequestBody body = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part categoryId = MultipartBody.Part.createFormData("categoryId", categoryId1+"");
MultipartBody.Part uploadUser = MultipartBody.Part.createFormData("uploadUser", PreferenceUtils.getString(mainActivity,"yhxm"));
MultipartBody.Part departmentId = MultipartBody.Part.createFormData("departmentId", "");
MultipartBody.Part jgdm = MultipartBody.Part.createFormData("jgdm", PreferenceUtils.getString(mainActivity,"jgdm"));
MultipartBody.Part yhxxid = MultipartBody.Part.createFormData("yhxxid", PreferenceUtils.getLong(mainActivity , "yhxxid" , 0)+"");
MultipartBody.Part part = MultipartBody.Part.createFormData("fileName", file.getName(), new ProgressRequestBody(body, new UploadProgressListener() {
@Override
public void onProgress(long currentBytesCount, long totalBytesCount) {
progressBar.setVisibility(View.VISIBLE);
progressBar.setMax((int) totalBytesCount);
progressBar.setProgress((int) currentBytesCount);
}
}));
UploadFileService uploadFileService = OkHttpUtils.getRetrofit().create(UploadFileService.class);
uploadFileService.uploadFileAndParams(part,categoryId , uploadUser , departmentId , jgdm,tokenPart,yhxxid).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<ResponseResult<String>>() {
@Override
public void onCompleted() {
progressBar.setVisibility(View.GONE);
}
@Override
public void onError(Throwable e) {
progressBar.setVisibility(View.GONE);
DialogUtils.showDialog2(mainActivity, "温馨提示", null, "上传失败!是否重新提交?",new DialogOnClickListenner() {
@Override
public void btnConfirmClick(Dialog dialog) {
dialog.dismiss();
uplaodFile2(file);
}
@Override
public void btnCancelClick(Dialog dialog) {
dialog.dismiss();
}
});
}
@Override
public void onNext(ResponseResult<String> stringResponseResult) {
switch (stringResponseResult.getResult()){
case 1:
ToastUtils.showToast(mainActivity , "上传成功");
break;
case 2:
ToastUtils.showToast(mainActivity , "参数列表不能为空");
break;
case 0:
ToastUtils.showToast(mainActivity , "上传失败");
break;
case -1:
ToastUtils.showToast(mainActivity , "服务器异常");
break;
case -2:
startActivityForResult(new Intent(mainActivity , UserLoginAtivity.class),106);
break;
}
}
});
}