Отправка formdata¶
const formData = new FormData()
- Формадата состоит из пар key: value
- value может быть трёх типов - Blob (binary), File и строка
- Если добавить value который не относится к этим трём типам - value в ЛЮБОМ случае будет сконвертирован в строку Например:
formData.append('myObjectKey', {test: '123'})
formData.get('myObjectKey') => '[object Object]' СТРОКА, бессмысленная строка
Массивы нужно добавлять поэлементно, то есть:
const array = [1, 2, 3]
array.forEach(item => formData.append(item)
Объекты нужно предварительно превращать в строку с помощью JSON.stringify(myObject), и потом эту строку добавлять в формдату
Файлы добавляются по-разному, зависит от бекенда, я знаю два варианта:
- Бинарник
const file = event.target.files[0]
const binary = new Blob([file], { optionalParams })
formData.append('myBinaryFile', binary)
- Просто файл
const file = event.target.files[0]
formData.append('myFile', file)