FormData добавить файл угловой - PullRequest
0 голосов
/ 23 октября 2018

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

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

    console.log(formData);

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

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

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

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

Так что, если вы видите, первое работает, но после уже нет.

Любые советы?

1 Ответ

0 голосов
/ 23 октября 2018

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

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

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

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

event.target.value = '';

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

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

вы принимаете файлы как 'Reference Type', так что если вы измените значениекак вы сделали здесь:

event.target.value = '';

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...