Nano Hash - криптовалюты, майнинг, программирование

Мой объект uploadData не показывает переданную ему информацию и просто показывает FormData{} на консоли

Я хочу загрузить файл и создать новый объект, который я хочу передать на сервер с именем «uploadData». Я хочу добавить значения в этот объект из объекта «uploadForm», созданного с помощью построителя угловых форм. Но на консоли просто отображается «FormData {}».

const uploadData = new FormData();
        this.uploadData.append("name", this.uploadForm.value.name);
        this.uploadData.append("sem", this.uploadForm.value.sem);
        this.uploadData.append("subject", this.uploadForm.value.subject);
        this.uploadData.append("material", this.uploadForm.value.material);
        this.uploadData.append("id", this.userId);
        this.uploadData.append("pdf",this.uploadForm.value.pdf, this.uploadForm.value.name);
        //this.updown.upload(this.uploadData).subscribe()
        console.log(this.uploadData);

конструктор форм

uploadForm = this.fb.group({
name: ['', Validators.required],
sem: ['', Validators.required],
subject: ['', Validators.required],
material: ['', Validators.required],
pdf: ['', Validators.required]
});

Pdf - это файл, поэтому:

onImagePick(event: Event){
const file = (event.target as HTMLInputElement).files[0];
this.uploadForm.patchValue({ pdf : file });
this.uploadForm.get('pdf').updateValueAndValidity();
}

  • Вы используете this.updown.upload(this.uploadData), но объявляете его как const uploadData. Удалите ключевое слово this, и все будет в порядке. 10.04.2019
  • Другая проблема заключается в том, что он не показывает данные на консоли, а показывает только FormData{} 10.04.2019
  • Смотрите мой ответ, не влез в комментарий 10.04.2019
  • Я только что обновил свой вопрос, чтобы вы могли посмотреть на него, если хотите. 10.04.2019
  • Ну, это не поможет мне ответить вам в любом случае, но конечно! ты пробовал мой ответ? 10.04.2019
  • Пробовал, но все еще в том же положении. Спасибо за помощь. Я перестану получать ответы сейчас? 10.04.2019
  • Ну, вы даже не должны были их получать, потому что вы не предоставили минимальный воспроизводимый пример. Подумайте о том, чтобы создать новый вопрос с ним, и у вас должно быть гораздо больше ответов. 10.04.2019

Ответы:


1

Вы используете this.updown.upload(this.uploadData), но объявляете его как const uploadData. Удалите это ключевое слово, и все будет в порядке.

С другой стороны, FormData являются неизменяемыми, что означает, что append возвращает новый экземпляр данных формы.

Вместо этого попробуйте использовать этот код:

const uploadData = new FormData()
    .append("name", this.uploadForm.value.name)
    .append("sem", this.uploadForm.value.sem)
    .append("subject", this.uploadForm.value.subject)
    .append("material", this.uploadForm.value.material)
    .append("id", this.userId)
    .append("pdf",this.uploadForm.value.pdf, this.uploadForm.value.name);

    //this.updown.upload(this.uploadData).subscribe()
    console.log(this.uploadData);
10.04.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..