Функция File
Функция File применяется внутри функции-обработчика
и указывает FastAPI, что параметр нужно принять
как файл из тела запроса с типом multipart/form-data.
Первым параметром передаётся значение по умолчанию,
например ... для обязательного файла.
Дополнительные параметры, такие как media_type
и description, описывают загружаемый файл.
Синтаксис
from fastapi import File
File(default=..., *, media_type=None, description=None)
Пример
Давайте примем файл на адресе '/upload':
from fastapi import FastAPI, File
app = FastAPI()
@app.post('/upload')
async def upload(file: bytes = File()):
return {'size': len(file)}
Результат выполнения кода при загрузке файла с содержимым 'abcde':
{"size": 5}
Пример
Давайте примем файл как объект UploadFile
и прочитаем его имя и содержимое:
Результат выполнения кода при загрузке файла 'hello.txt' с содержимым 'abcde':
{"name": "hello.txt", "size": 5}
Пример
Давайте примем сразу несколько файлов, объявив параметр как список:
from fastapi import FastAPI, File, UploadFile
app = FastAPI()
@app.post('/upload-many')
async def upload_many(files: list[UploadFile] = File()):
names = [file.filename for file in files]
return {'names': names}
Результат выполнения кода при загрузке файлов 'user.txt' и 'article.txt':
{"names": ["user.txt", "article.txt"]}
Смотрите также
-
функция
Form,
которая принимает поля формы из тела запроса -
функция
Body,
которая принимает произвольное тело запроса -
параметр
media_type,
который задаёт тип содержимого параметра -
параметр
description,
который добавляет описание параметра в документацию