Найти тему
Последователи Bitrix

Как загрузить файлы на сервер с помощью HttpClient D7 [Guzzle, curl не нужен]

use Bitrix\Main\Web\HttpClient;
$client = new HttpClient();
$srcFiles = [
$_SERVER['DOCUMENT_ROOT'] . '/upload/test1.jpg',
$_SERVER['DOCUMENT_ROOT'] . '/upload/test2.jpg',
$_SERVER['DOCUMENT_ROOT'] . '/upload/test3.jpg',
];
$uploadData = [];
foreach ($srcFiles as $fname)
{
$uploadData[] = [
'resource' => fopen($fname, 'r'),
// дополнительные параметры
// 'content' => содержимое файла
// 'filename' => название файла
// 'contentType' => тип
];
}
$uploadUrl = 'https://www.bitrix24.ru/features/sites.php';
$resUpload = $client->post($uploadUrl, $uploadData, true);

Таким образом можно избавится от ненужных зависимостей типа Guzzle или необходимости ставить php расширение CURL.

Остальные типовые примеры возможностей Bitrix HttpClient можно найти в документации

Еще пример использования на реальной практике - PHP VK SDK версия адаптированная под Bitrix для решения Bitrix по выгрузке в Товары.ВКонтакте