Атрибут 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,
который читает содержимое загруженного файла