文件上传两种写法

第一种

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 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 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(getView()) {
            @Override
            public void onSuccess(UploadSignPdfBean bean) {
                super.onSuccess(bean);

                try {

                    if(bean != null){

                        String fileids = bean.fileids;
                        List 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("上传文件失败");
            }
        });

你可能感兴趣的:(servlet,java,开发语言)