Как отправить файл в aiogram 3.0.0b4?
Как отправить файл в aiogram версии 3.0.0b4?
Использую следующий код и не знаю, что делать дальше:
f = open('otchet.txt', 'w')
f.write(otchet)
f.close()
Файл создал, а как отправить понять не смог.
Ответы (2 шт):
Автор решения: acinaki
→ Ссылка
Для того чтобы это сделать, используйте специальную обёртку FSInputFile в aiogram для локальных файлов:
from aiogram.types.input_file import FSInputFile
document = FSInputFile('otchet.txt')
await bot.send_document(chatid, document)
Здесь chatid — ID чата, в который отправляется файл.
Автор решения: dx3d9
→ Ссылка
Мой пример на Aiogram 3
через инлаин кнопку скачать с помощью цикла получает все файлы EXCEL с расширением .xlsx и отправляет пользователю.
import time
import glob
from aiogram import F, Bot
from aiogram.types import CallbackQuery, FSInputFile
router = Router()
@router.callback_query(F.data.startswith('download_price'))
async def download_price(call: CallbackQuery, bot: Bot):
await call.message.delete()
await call.answer(cache_time=2)
for file in glob.glob('./excel/*.xlsx'):
file_input = FSInputFile(file)
file_name = await bot.send_document(
call.message.chat.id, file_input,
caption=f'Актуальный на <b>{time.strftime("%d-%m-%Y", time.localtime())}</b>')