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

Атрибут filename

Атрибут filename принадлежит классу UploadFile и содержит строку с исходным именем файла, которое клиент передал в заголовке Content-Disposition при загрузке. Атрибут доступен только для чтения и автоматически заполняется FastAPI при обработке поля формы с типом UploadFile. Если имя файла не было передано клиентом, значение равно None.

Синтаксис

upload_file.filename

Пример

Давайте выведем имя загруженного файла в ответе эндпоинта:

from fastapi import FastAPI, UploadFile, File app = FastAPI() @app.post('/upload/') async def upload_file(file: UploadFile = File()): return {'filename': file.filename}

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

{"filename": "abcde.txt"}

Пример

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

from fastapi import FastAPI, UploadFile, File app = FastAPI() @app.post('/upload/') async def upload_file(file: UploadFile = File()): content = await file.read() with open(file.filename, 'wb') as f: f.write(content) return {'saved': file.filename}

Результат выполнения кода при загрузке файла 'article.pdf':

{"saved": "article.pdf"}

Пример

Давайте проверим расширение файла через атрибут filename:

from fastapi import FastAPI, UploadFile, File app = FastAPI() @app.post('/upload/') async def upload_file(file: UploadFile = File()): if file.filename.endswith('.txt'): return {'type': 'text', 'name': file.filename} return {'type': 'other', 'name': file.filename}

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

{"type": "text", "name": "hello.txt"}

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

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