Как загрузить несколько изображений / файлов во Flutter с помощью Dio? - PullRequest
0 голосов
/ 05 августа 2020

Я пытался загрузить несколько изображений / файлов на серверную часть во Flutter. Я использую Dio. Пока мне не удалось это сделать.

Мне удалось сделать это с помощью почтальона. Это данные формы

Запрос от почтальона

Это мой код:

    Future<dynamic> fileUpload(List<String> filepath, String url) async {
    var token = await storage.getToken();
    var idToken = await storage.getIdToken();
    Dio dio = Dio();

    List uploadList = [];
    for (var file in filepath) {
      var multipartFile = await MultipartFile.fromFile(
        file
      );
      uploadList.add(multipartFile);
    }

    FormData formData = FormData.fromMap({"assignment": uploadList});
     var response = await dio.post(APIURL.baseUrl + url,
        data: formData,
        options: Options(headers: {
          HttpHeaders.authorizationHeader: "Bearer $token",
          'idToken': idToken,
        }));
    return response;
  }

Кто-нибудь, пожалуйста, помогите.

1 Ответ

1 голос
/ 05 августа 2020

Оказывается, есть два способа добавить несколько файлов в FormData. Сработал следующий подход

var formData = FormData();
for (var file in filepath) {
  formData.files.addAll([
  MapEntry("assignment", await MultipartFile.fromFile(file)),
]);
}
...