Задать вопрос
@SVZhidkow
Бэкенд-разработчик

Как правильно передать через cUrl параметры и файл?

У меня есть вот такой пакет https://github.com/adiafora/php-api-client

Успешно передаю параметры через POST. Если нужно передать файл, то в массив параметров просто добавляю
'file' => new \CURLFile(...)

Все отлично работает. Но, если мне надо передать многомерный массив параметров, то получаю ошибку Array to string conversion на этой строке. От этого, конечно же, спасает http_build_query(), т.е.

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($this->api->getParams()));


Но в этом случае передача файла уже не проходит. Как быть? Как совместить и передачу файла и передачу многомерного массива параметров?
  • Вопрос задан
  • 272 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@SVZhidkow Автор вопроса
Бэкенд-разработчик
Кажется, я нашел решение. По крайней мере, у меня сработало со всеми API.
Параметры достаточно сериализовать с json_encode(). И многомерные массивы в этом случае успешно передаются, и файлы.

curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($params, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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