Как отправить несколько файлов FormData, где каждый файл принадлежит другому FormControl? - PullRequest
0 голосов
/ 18 июня 2020

Я создаю веб-сайт, на котором учитель может загрузить свой собственный курс.

Структура курса

CourseName
|-Module1
  |-Lecture 1
  |-Lecture 2
|-Module2
  |-Lecture 1
  |-Lecture 2

Структура значений формы выглядит как-то например,

{
  "coursename": "Complete java beginners guide",
  "board": 0,
  "class": 3,
  "coursedescription": "Learn java from scratch",
  "modules": [
    {
      "modulename": "Week 1: Intro to java",
      "lectures": [
        {
          "lecturename": "Data types in Java",
          "lecturepath": {
            "0": {}
          },
          "lecturedescription": "learn datatypes in java"
        },
        {
          "lecturename": "Primary vs Secondary types",
          "lecturepath": {
            "0": {}
          },
          "lecturedescription": "learn about primary vs secondary type"
        }
      ]
    },
    {
      "modulename": "Week 2 some more learning",
      "lectures": [
        {
          "lecturename": "module 2 lecture 1",
          "lecturepath": {
            "0": {}
          },
          "lecturedescription": "learn this lecture"
        }
      ]
    }
  ]
}

где путь лекции содержит файл.

Я не могу понять, как настроить FormData для отправки его обратно на сервер.

Пока у меня есть это, но это, конечно, не работает

onSubmitNewCourse() {
    const formData = new FormData();
    formData.append('course', this.form.value);
    TODO:handle files
  }

Помощь будет очень признательна :)

1 Ответ

0 голосов
/ 18 июня 2020

Вы уверены, что ваш файл правильно добавлен к formData как Blob или Binary?

Для решения angular я не знаю, как выглядит ваше приложение, но я предложил вам создать formGroup для все ваши данные и, возможно, создать службу для загрузки вашего файла в правильный модуль курса через formData, как в приведенном выше коде, с файлом в blob

...