Retrofit2.0上傳圖片

正常使用Multipart方式上傳圖片服務器

第一種上傳單個圖片,第二種上傳多個圖片spa

@Multipart
@POST(ACTION_URL)
Observable<ResponseBody> uploadFiles(@Part("image\"; filename=\"文件名.jpg") RequestBody file);

@Multipart @POST(ACTION_URL)
Observable<ResponseBody> uploadFiles(@Query("a") String type, @PartMap Map<String, RequestBody> requestBodys);
圖片

有時上傳圖片,須要上傳幾個參數ip

我最開始是使用@Part標籤設置的,但服務器接收不到數據,多是類型的緣由get

@Multipart @POST(ACTION_URL)
Observable<ResponseBody> uploadFiles(@Query("a") String type, @PartMap Map<String, RequestBody> requestBodys,@Part("userid") String userid);
file

改爲下面的就能夠了request

@Multipart @POST(ACTION_URL)
Observable<ResponseBody> uploadFiles(@Query("a") String type, @PartMap Map<String, RequestBody> requestBodys,@Part("userid") RequestBody userid);
map

或者直接放到Map裏im

RequestBody useridBody = RequestBody.create(MediaType.parse("text/plain"), userid);
RequestBody fileBody = RequestBody.create(MediaType.parse("image/*"), imageFile);數據

Map<String, RequestBody> map = new HashMap<>();
map.put("userid", useridBody);
map.put("photo\"; filename=\"" + imageFile.getName(), fileBody);

注意,photo是服務器接收的名稱,filename必須寫

相關文章
相關標籤/搜索