FormData добавить файл Angular

Я использую FormData для отправки изображения в Laravel API. Когда я использую этот код, он не работает:

onChange(event: any) {
 const images = event.target.files;
 if (images.length <= 5) {
  Array.from(images).forEach(image => {
    console.info(image);
    const formData: FormData = new FormData();
    formData.append('image', image, image.name);

    console.info(formData);

    this.http.post('http://127.0.0.1:8000/api/web', formData).subscribe(data =>  {
      console.info(data);
    });
  });
 }
 event.target.value = '';
}

console.info(image); Я получаю File(651565){}

console.info(formData); Я получаю FormData {}

console.info(data); Я получаю {}

Итак, если вы видите, первое работает, а второе - нет.

Какие-нибудь советы?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
2 109
1

Ответы 1

если к HTMLInputElement добавлена ​​функция onChange, попробуйте следующее:

const images = (event.target as HTMLInputElement).files;

после редактирования

Я внимательно изучил это, и, похоже, проблема в этой строке:

event.target.value = '';

и причина этого в том, что здесь:

const images = (event.target as HTMLInputElement).files;

вы принимаете файлы как «Тип ссылки», поэтому, если вы измените значение, как здесь:

event.target.value = '';

вы удаляете объект файлов.

попробуйте сделать это:

переместите 'event.target.value =' ';' чтобы подписаться на метод, поэтому только в случае успеха вы можете удалить их, а также вам нужно создать функцию ошибки, а затем удалить ее при возникновении ошибки.

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

Ничего не изменилось

Jur Dekker 23.10.2018 08:11

Другие вопросы по теме