第一种
RequestBody fileRQ = RequestBody.create(MediaType.parse("multipart/form-data"), file); RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("file", file.getName(), fileRQ) .build(); MultipartBody.Part part = MultipartBody.Part.create(requestBody); String url = mSpfUtils.getServerBaseUrl() + "/servlet/file.FileUpServlet"; Request request= new Request.Builder() .url(url) .post(requestBody) .build(); new OkHttpClient().newCall(request).enqueue(new Callback() { @Override public void onFailure(@NotNull Call call, @NotNull IOException e) { Log.d("上传文件失败", "onFailure: "); } @Override public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException { try { Gson gson = new Gson(); UploadSignPdfBean bean = gson.fromJson(response.body().string(), UploadSignPdfBean.class); if(bean != null){ String fileids = bean.fileids; List<UploadSignPdfBean.SignfileBean> data = bean.files; if(data!= null){ getView().updateOrgChatFile(data.get(0).fileid); getView().showToast("文件更新成功!"); } } }catch (Exception e){ e.printStackTrace(); } } });
第二种:
@Multipart @POST("/servlet/file.FileUpServlet") Observable<UploadSignPdfBean> uploadChangeFile(@Part MultipartBody.Part file);
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file); MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), requestBody); mServerApi.uploadChangeFile(filePart) .subscribe(new BaseObjectObserver<UploadSignPdfBean>(getView()) { @Override public void onSuccess(UploadSignPdfBean bean) { super.onSuccess(bean); try { if(bean != null){ String fileids = bean.fileids; List<UploadSignPdfBean.SignfileBean> data = bean.files; if(data!= null){ getView().updateOrgChatFile(data.get(0).fileid); getView().showToast("文件更新成功!"); } } }catch (Exception e){ e.printStackTrace(); } } @Override public void onError(Throwable e) { super.onError(e); LogUtil.i("onError----="+e.toString()); getView().hideLoadingDialog(); getView().showToast("上传文件失败"); } });