@T3R3AND

Как правильно передавать content в curl?

Здравствуйте! Получаю файл (mp3) через file_get_contents( $URL ); и передаю в CURLOPT_POSTFIELDS. Розумно ли это и правильно ли?
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
@Flysink
Если вы передаете бинарные данные файла предварительно скачивая их и помещая в локальную переменную, тогда все верно. Они попадают в тело запроса.
Пример:
$data = ["image" => file_get_contents($URL)];
CURLOPT_POSTFIELDS($curl, $data);


А когда вам нужно передать файл, который находится по локальному адресу, тогда используйте CURLFile
Пример:
$image = [];
$image['path'] = 'path\tmp\file.jpg';
$image['type'] = "image/jpeg";
$image['name'] = "file.jpg";

$data = ["image" => new CURLFile($image['path'], $image['type'], $image['name'])];
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);


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

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

Войти через центр авторизации
Похожие вопросы