Api
@Multipart @POST("pj/zy/add") Observable<UploadingEntity> uploadMultipleTypeFile( @QueryMap() Map<String, String> params, @PartMap() Map<String, RequestBody> files);
Model public Observable<UploadingEntity> Uploading(Map<String, String> params, Map<String, RequestBody> files) { HTZ_Utils htzUtils = new HTZ_Utils(NETWORKINTERFACE); MyApi upApi = htzUtils.create(MyApi.class); Observable<UploadingEntity> api = upApi.uploadMultipleTypeFile(params,files); return api; }
presenter
public void UploadingFile(List<String> imgs, String contactpsn, Integer sex , Integer contracttype, String jzarea, String zdarea, String title , Integer pjtype, String rent,String strlocal,Double lat,Double lon,String cityName,String districtName) { Map<String, String> params = new HashMap<>(); Map<String, RequestBody> bodyMap = new HashMap<>(); params.put("contactpsn", contactpsn); params.put("contracttype", String.valueOf(contracttype)); params.put("sex", String.valueOf(sex)); params.put("jzarea", jzarea); params.put("zdarea", zdarea); params.put("title", title); params.put("pjtype", String.valueOf(pjtype)); params.put("rent", rent); params.put("strlocal",strlocal); params.put("lat",String.valueOf(lat)); params.put("lon",String.valueOf(lon)); params.put("city",cityName); params.put("district",districtName); if (imgs.size() > 0) { for (int i = 0; i < imgs.size(); i++) { File file = new File(imgs.get(i)); if (file.exists()) { bodyMap.put("file\"; filename=\"" + file.getName(), RequestBody.create(MediaType.parse("image/png"), file)); } } } view.showProgress(); Observable<UploadingEntity> uldo = uploadingModel.Uploading(params, bodyMap); uldo.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<UploadingEntity>() { @Override public void accept(UploadingEntity uploadingEntity) throws Exception { view.getSuccess(uploadingEntity); view.hideProgress(); } }, new Consumer<Throwable>() { @Override public void accept(Throwable throwable) throws Exception { view.getFailure(throwable); view.hideProgress(); } }); }