← Вернуться к списку тем

Помогите исправить ошибку при сохранение фото

Фото сохраняется на сервер но фаил биты пустой 

// Извлечение данных о фото
    $photo_file_id = $update['channel_post']['photo'][count($update['channel_post']['photo'])-1]['file_id']; // ID файла фото
    $photo_caption = isset($update['channel_post']['caption']) ? $update['channel_post']['caption'] : ''; // Описание фото
    
    // Разбиение описания на поля
    $photo_info = explode("\n", $photo_caption); // Разбиение описания на отдельные строки
    $serial_name_year = explode('(', $photo_info[0]); // Получение названия сериала и года выпуска
    $name = trim($serial_name_year[0]); // Название сериала
    $year = trim(str_replace(')', '', $serial_name_year[1])); // Год выпуска
    $description = trim(str_replace('Описание:', '', $photo_info[1])); // Описание сериала
    $genre = trim(str_replace('Жанр:', '', $photo_info[2])); // Жанр сериала
    
    // Сохранение фото в папке на сервере
$photo_path = 'img/' . time() . '.jpg'; // Генерация названия файла фото
    file_put_contents($photo_path, file_get_contents('https://api.telegram.org/bot' . $token . '/getFile?file_id=' . $photo_file_id)); // Сохранение фото

Авторизуйтесь через Telegram, чтобы оставить комментарий.
Откройте по ссылке или QR бот @iMakeBot, нажмите кнопку Старт/Start.
Следуйте инструкциям бота.

  • iMakeBots [10 месяцев назад]

    Обратите внимание: метод getFile() возвращает объект FIle в формате json.

    Для того чтобы получить файл вам нужно обратиться по адресу https://api.telegram.org/file/bot<token>/<file_path>, где file_path нужно взять из объекта File

  • S.К [10 месяцев назад → iMakeBots]

    Спасибо получился такой код 

    // Извлечение данных о фото
    $photo_file_id = $update['channel_post']['photo'][count($update['channel_post']['photo'])-1]['file_id']; // ID файла фото
    $photo_caption = isset($update['channel_post']['caption']) ? $update['channel_post']['caption'] : ''; // Описание фото
    
    // Разбиение описания на поля
    $photo_info = explode("\n", $photo_caption); // Разбиение описания на отдельные строки
    $serial_name_year = explode('(', $photo_info[0]); // Получение названия сериала и года выпуска
    $name = trim($serial_name_year[0]); // Название сериала
    $year = trim(str_replace(')', '', $serial_name_year[1])); // Год выпуска
    $description = trim(str_replace('Описание:', '', $photo_info[1])); // Описание сериала
    $genre = trim(str_replace('Жанр:', '', $photo_info[2])); // Жанр сериала
    
    // Получение информации о файле
    $file_info = json_decode(file_get_contents('https://api.telegram.org/bot' . $token . '/getFile?file_id=' . $photo_file_id), true);
    $file_path = $file_info['result']['file_path']; // Получение пути к файлу
    $photo_url = 'https://api.telegram.org/file/bot' . $token . '/' . $file_path; // Составление url для получения фото
    
    // Сохранение фото в папке на сервере
    $photo_path = 'img/' . time() . '.jpg'; // Генерация названия файла фото
    file_put_contents($photo_path, file_get_contents($photo_url)); // Сохранение фото