Android Retrofit:如何使用改造将多个图像上传到服务器?

时间:2015-07-24 18:01:42

标签: android retrofit

首先,这不是一个重复的问题,因为我已经厌倦了在stackoverflow上找到的所有方法。我正在尝试使用Retrofit库将多个(动态更改数字)图像上传到服务器。目前我正在同时发送两张图像

ApiUtil.GetRestApi().UploadImages(
                                  new TypedString(userName), 
                                  new TypedFile("image/jpg", files[0]), 
                                  new TypedFile("image/jpg", files[1]), this);

我的Rest Api看起来像这样

@Multipart
@POST("/image/upload-media/")
void UploadImages(@Part("username") TypedString userName, 
                  @Part("media") TypedFile media1, 
                  @Part("media") TypedFile media2,
                  Callback<MediaUploadResponse> response);

这完全没问题但我不能继续这个,因为无法修复图像数量。我在stackoverflow上找到了很多线程,但我无法解决这个问题。 对此有何解决方案?

1 个答案:

答案 0 :(得分:0)

使用改造@PartMap。 API将如下所示:

@Multipart
@POST("/image/upload-media/")
void UploadImages(Map<String,TypedFile> files,
                  Callback<MediaUploadResponse> response);

然后使用:

创建零件图
Map<String, TypedFile> files = new HashMap<String, TypedFile>();
files.put("media1", new TypedFile("image/jpg", files(0)));
files.put("media2", new TypedFile("image/jpg", files(1)));