Загрузка одного файла с FormData - PullRequest
0 голосов
/ 01 мая 2020

Я хочу загрузить один файл с этим кодом:

let formData = new FormData();
let file = this.file[0];
formData.append("file", file);

Обычно я использую этот фрагмент кода, потому что когда я загружаю несколько файлов:

 let formData = new FormData();
  for (let i = 0; i < data.files.length; i++) {
    let file = data.files[i];
    consol
    formData.append("files[" + i + "]", file);
  }

Но с одним Загрузка файла переменная formData остается пустой после добавления файла. Когда я console.log переменная file показывает мне это:

File {name: "2020_03_17 21_53 Office Lens (1).jpg", lastModified: 1587394084978, lastModifiedDate: Mon Apr 20 2020 16:48:04 GMT+0200 (Central European Summer Time), webkitRelativePath: "", size: 306890, …}
lastModified: 1587394084978
lastModifiedDate: Mon Apr 20 2020 16:48:04 GMT+0200 (Central European Summer Time) {}
name: "2020_03_17 21_53 Office Lens (1).jpg"
size: 306890
type: "image/jpeg"
webkitRelativePath: ""

Почему этот файл не добавляется в FormData?

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Содержимое файла (в байтах) никогда не отображается в console.log.
если вы видите file.size, это означает, что файл присутствует в объекте formdata.

Чтобы проверить это - попробуйте отправить данные формы в API и использовать httpRequest.FormData [0] для их получения - и вы обнаружите, что ваш файл был отправлен в API

См. - https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects

0 голосов
/ 01 мая 2020

Полагаю, в коде вам нужны "файлы", а не "файл". А также вы можете проверить, что вы на самом деле ссылаетесь на "это"

let formData = new FormData();
let file = this.files[0];
formData.append("file", file);
...