Как сохранить неколько фото от пользователя

пишу бота в телеграме с помощью telebot. При отправке пользователем нескольких фото в одном сообщении бот сохраняет только первое, как реализовать сохранение всех фото?


Ответы (1 шт):

Автор решения: virsi

Думаю можно попробовать так:

@bot.message_handler(content_types=['photo'])
def handle_docs_photo(message):
    try:
        chat_id = message.chat.id
        file_info_1 = bot.get_file(message.photo[-1].file_id)
        bot.send_message(message.chat.id, file_info_1)
        downloaded_file = bot.download_file(file_info_1.file_path)
        
        src = dir + '\\' + file_info_1.file_path.split('/')[-1]
        bot.send_message(message.chat.id, src)
        with open(src, 'wb') as new_file:
            new_file.write(downloaded_file)

    except Exception as e:
        bot.reply_to(message, e)

Учтите, что пользователь мог отправить не альбом из фотографий, а несколько файлов (фотографии без сжатия). На вашем месте я бы добавил обработку такого случая. Делается просто:

@bot.message_handler(content_types=['document'])

А дальше все то же самое

→ Ссылка