第一MainActivity类
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); } @OnClick(R.id.buton_bu) public void onViewClicked() { File_Img(); } public static String File_Img() { MultipartBody.Part part = getMultipartBody(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://192.168.1.330:7780")//基础URL 建议以 / 结尾 .addConverterFactory(GsonConverterFactory.create())//设置 Json 转换器 .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//RxJava 适配器 .build(); APIWrapper add_retrofit = retrofit.create(APIWrapper.class); add_retrofit.postImgApi(part) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<User>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(User uploadBean) { if (uploadBean.getImgUri().length() > 0) { //比如下面,导入后台要上传的数据包 //img.getFace().setUploadUri(uploadBean.getImgUri());//获取图片数据 //获取图片数据放在后台服务器参数包, //FHApplication.mInstance.getMost().makeMsg(img.getFace());//发送到后台 } } }); return null; } // 获取本地路径图片 public static MultipartBody.Part getMultipartBody() { String path = "/luj/you/ka"; File file = new File(path); if (!file.exists()) { file.mkdirs(); } String filepath = path + File.separator; File files = new File(filepath); RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), files); //文件上传使用MultipartBody.Part对象 return MultipartBody.Part.createFormData("file", file.getName(), requestBody); }
第二APIWrapper类
public interface APIWrapper { @Multipart @POST("/file/img") //文件上传使用MultipartBody.Part对象 Observable<User> postImgApi(@Part MultipartBody.Part file); }
第三User类
public class User { private String ImgUri; public User() { } public String getImgUri() { return ImgUri; } public void setImgUri(String ImgUriUri) { this.ImgUri = ImgUriUri; } }