接口定义
public interface FileUploadService {
@Multipart
@POST("upload")
Call<ResponseBody> uploadMultiple(
@Part List<MultipartBody.Part> files,
@PartMap Map<String, RequestBody> params
);
}
`
`public class UploadUtils {
public static void uploadFiles(List<File> files, Map<String, String> formFields) {
List<MultipartBody.Part> fileParts = new ArrayList<>();
for (File file : files) {
RequestBody requestFile = RequestBody.create(
MediaType.parse("multipart/form-data"), file);
MultipartBody.Part part = MultipartBody.Part.createFormData(
"files", file.getName(), requestFile);
fileParts.add(part);
}
Map<String, RequestBody> params = new HashMap<>();
for (Map.Entry<String, String> entry : formFields.entrySet()) {
params.put(entry.getKey(),
RequestBody.create(MediaType.parse("text/plain"), entry.getValue()));
}
FileUploadService service = RetrofitClient.getService();
Call<ResponseBody> call = service.uploadMultiple(fileParts, params);
call.enqueue(new Callback<ResponseBody>() {
});
}
}
`
```