一 定義上傳圖片的接口
@Multipart
@POST("fileUpload.zy")
Call uploadImage(@Part() MultipartBody.Part file);//單張圖片上傳
@Multipart
@POST("fileUpload.zy")
Call uploadManyImage(@Part() MultipartBody.Part [] file);//多張圖片上傳
}
二、單張圖片上傳
1、創(chuàng)建RequestBody?
File file = new File(path);
RequestBody requestFile =
RequestBody.create(MediaType.parse("multipart/form-data"), file);
2、創(chuàng)建MultipartBody.Part,其中需要注意第一個參數(shù)需要與服務(wù)器對應(yīng)
MultipartBody.Part part = MultipartBody.Part.createFormData("myfiles", file.getName(), requestFile);
3、調(diào)用uploadImage上傳圖片
IUserBiz iUserBiz =retrofit.create(IUserBiz.class);
Call call = iUserBiz.uploadImage(part);
call.enqueue(callback);
三,多張圖片上傳
比如需要同時上傳三張圖片
首先創(chuàng)建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、創(chuàng)建MultipartBody.Part的數(shù)組
MultipartBody.Part [] part =newMultipartBody.Part[3];
下面第一個參數(shù)還是與服務(wù)器的對應(yīng)
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、調(diào)用uploadManyImage上傳圖片
IUserBiz iUserBiz =retrofit.create(IUserBiz.class);
Callcall = iUserBiz.uploadManyImage(part);
call.enqueue(callback);