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 по выгрузке в Товары.ВКонтакте