AntonBrock
@AntonBrock
screen light

Как выполнить отправку файла и JSON-данных?

Стоит задача выполнить отправку файла и данных.
При отправке файла, необходимо вложить json объект.

Мы создаём `FormObj()` и вкладываем в него файл и JSON-объект.

Используемые технологии:
- axios

Проблема:
Вкладываемый объект приходит на backend как строка: `[[object Object]]`

Указываю заголовки при отправке:
`Content-Type': 'multipart/form-data`
`Accept: apllication/json;charset=UTF-8`

Код:
export const importLeads = function(form, delimiter, first_line_poss, selectedColumn, extraField){
  let data = {
    "options": {
      "delimeters": delimiter,
      "first_line_poss": first_line_poss
    },
    "colums": selectedColumn,
    "extraComuln": extraField || undefined
  }
  form.append("data", data)
  return api.put(`leads/import/csv`, form,  
  {
    headers: 
    {
      'Content-Type': 'multipart/form-data'
    }
  })


Тело запроса:

-----------------------------9246871473245247581210159984
Content-Disposition: form-data; name="file"; filename="somefile.csv"
Content-Type: text/csv

$email,$name,$phone,Название свойства 1,Название свойства 2
email@email.com,Саша,89991234567,Значение свойства,Значение свойства
-----------------------------9246871473245247581210159984
Content-Disposition: form-data; name="data"

[object Object]
-----------------------------9246871473245247581210159984--
  • Вопрос задан
  • 797 просмотров
Решения вопроса 1
Planet_93
@Planet_93
Попробуйте параметры записывать с помощью JSON.stringify().

Либо каждый параметр добавлять отдельно в formData.

form.append("file", file);
form.append("delimeters", delimiter);
form.append("first_line_poss", first_line_poss);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы