РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
169 of 307 menu

Атрибут file

Атрибут file класса UploadFile хранит объект файла, который используется FastAPI для чтения загруженных данных. Этот объект является асинхронной обёрткой над стандартным файловым объектом и поддерживает методы read, write, seek и close. Атрибут применяется к экземпляру UploadFile, который приходит в функцию-обработчик при загрузке файла через форму. Через file можно получить доступ к низкоуровневому файловому дескриптору.

Синтаксис

upload_file.file

Пример

Давайте создадим обработчик, который принимает файл и читает его содержимое через атрибут file:

from fastapi import FastAPI, UploadFile app = FastAPI() @app.post('/upload/') async def upload_file(file: UploadFile): content = await file.file.read() res = content.decode('utf-8') return {'text': res}

Результат выполнения кода при отправке файла с текстом 'abcde':

{"text": "abcde"}

Пример

Давайте откроем файл через атрибут file, прочитаем его и вернём размер данных:

from fastapi import FastAPI, UploadFile app = FastAPI() @app.post('/size/') async def get_size(file: UploadFile): with file.file as f: data = f.read() res = len(data) return {'size': res}

Результат выполнения кода при отправке файла с текстом 'hello':

{"size": 5}

Пример

Давайте используем атрибут file для доступа к имени файла через нижележащий дескриптор:

from fastapi import FastAPI, UploadFile app = FastAPI() @app.post('/info/') async def get_info(file: UploadFile): f = file.file res = {'name': f.name, 'mode': f.mode} return res

Результат выполнения кода при отправке файла с именем 'user.txt':

{"name": "user.txt", "mode": "rb"}

Смотрите также

  • класс UploadFile,
    который представляет загруженный файл
  • метод read,
    который читает содержимое загруженного файла
  • метод seek,
    который перемещает позицию чтения в файле
  • атрибут filename,
    который хранит имя загруженного файла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить