Пишу бота на языке PHP в телеграм с связкой python и php. Суть работы в следующем: пользователь пишет текст в боте, этот текст отправляется в файл python обрабатывается, создается файл csv и выводиться название файла. Далее Php скрипт должен отправить его пользователю методом CURL. Пример кода запуска python файла и отправки файла пользователю:
// ВЕРСИЯ PHP = 7.2
// здесь функция принимаемая вводимый текст
$text = "текст";
$python = $_SERVER['DOCUMENT_ROOT'] . '/venv/bin/python ';
$file = $_SERVER['DOCUMENT_ROOT'] . '/main.py';
ob_start();
passthru($python . ' ' . $file . ' ' . $text); // запускаем python файл
$output = ob_get_clean(); // здесь получаем имя файла в виде name.csv
$document = new CURLFile('/doc/'.$output); // ищем расположение - но не находит
// $document = new CURLFile(realpath($output)); - тоже не находит
$urlSite = "https://api.telegram.org/bot".$this->token."/sendDocument";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlSite);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ["chat_id" => $user_id, "document" => $document]);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: multipart/form-data"]);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$out = curl_exec($ch); // получаем ответ 0
curl_close($ch);
Код отправки файла работает на другом боте, где идет создание и отправка в самом php скрипте.
Почему new CURLFile не может найти расположения файла? Файл создается и присутствует в указанной директории doc. Права доступа указаны 777.