在Aiogram中,可以使用回调查询(CallbackQuery)来传递文件名。首先,需要使用Bot.sendDocument方法将文件发送给用户,并为该文件创建一个唯一的file id。然后,创建一个callback_data字符串,以该文件id和文件名作为参数。这个callback_data字符串可以作为回调查询的数据传递到回调函数中。在回调函数中,可以使用CallbackQuery.from_user方法获取发送回调查询的用户,以及CallbackQuery.data获取该文件的文件id和文件名参数。有了文件名后,就可以在回调函数中进行相应的操作。
import os
from aiogram.types import InputFile, CallbackQuery
async def send_file(bot, file_name, chat_id):
if os.path.exists(file_name):
with open(file_name, 'rb') as f:
await bot.send_document(chat_id, document=InputFile(f, file_name))
async def callback_handler(query: CallbackQuery):
user_id = query.from_user.id
file_id, file_name = query.data.split("_")
# do something with file_name