使用Retrofit2.0上传单张图片或多张图片到MVC spring服务器

一 定义上传图片的接口

@Multipart

@POST("fileUpload.zy")

Call uploadImage(@Part() MultipartBody.Part file);//单张图片上传

@Multipart

@POST("fileUpload.zy")

Call uploadManyImage(@Part() MultipartBody.Part [] file);//多张图片上传

}


二、单张图片上传

1、创建RequestBody 

File file = new File(path);

RequestBody requestFile =

RequestBody.create(MediaType.parse("multipart/form-data"), file);

2、创建MultipartBody.Part,其中需要注意第一个参数需要与服务器对应

MultipartBody.Part part = MultipartBody.Part.createFormData("myfiles", file.getName(), requestFile);

3、调用uploadImage上传图片

IUserBiz iUserBiz =retrofit.create(IUserBiz.class);

Call call = iUserBiz.uploadImage(part);

call.enqueue(callback);

三,多张图片上传

比如需要同时上传三张图片

首先创建3个RequestBody;

File file1= new File(path1);

File file2= new File(path2);

File file3= new File(path3);

RequestBody requestFile1 =

RequestBody.create(MediaType.parse("multipart/form-data"), file1);

RequestBody requestFile2 =

RequestBody.create(MediaType.parse("multipart/form-data"), file2);

RequestBody requestFile3 =

RequestBody.create(MediaType.parse("multipart/form-data"), file3);

2、创建MultipartBody.Part的数组

MultipartBody.Part [] part =newMultipartBody.Part[3];

下面第一个参数还是与服务器的对应

part[0] =MultipartBody.Part.createFormData("myfiles", file1.getName(), requestFile1);

part[1] =MultipartBody.Part.createFormData("myfiles", file2.getName(), requestFile2);

part[2] =MultipartBody.Part.createFormData("myfiles", file3.getName(), requestFile3);

3、调用uploadManyImage上传图片

IUserBiz iUserBiz =retrofit.create(IUserBiz.class);

Callcall = iUserBiz.uploadManyImage(part);

call.enqueue(callback);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于使用retrofit上传图片, 网上有许多教程, 再次做一下粗略的总结.上传图片为post请求, 先写接口, ...
    sankemao阅读 22,497评论 1 17
  • 每个应用基本都会涉及到文件的上传或下载,最普遍的一般也就是上传头像或者照片,下载安装包了,本篇文章就这两点简单说一...
    沐沐小风阅读 5,324评论 0 1
  • Retrofit与Okhttp共同出自于Square公司,Retrofit就是对Okhttp做了一层封装,我们只需...
    夏尼采阅读 358评论 1 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 女儿昨天回来气愤地说:可能是课间(时间还没问清楚女儿),其他同学做了女儿的座位,女儿就去做了该同学的座位,恰好该同...
    阳光燕阅读 362评论 0 2