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

Параметр filename

Параметр filename применяется к классу FileResponse и задаёт имя файла, которое браузер предложит сохранить при скачивании ответа. Первым параметром передаётся путь к файлу на диске, а параметр filename переопределяет имя, под которым файл будет отдан клиенту. Если filename не указан, используется имя исходного файла из пути.

Синтаксис

FileResponse(path, filename=None)

Пример

Давайте отдадим файл 'data.txt' под именем 'report.txt':

from fastapi import FastAPI from fastapi.responses import FileResponse app = FastAPI() @app.get('/download') def download(): return FileResponse('data.txt', filename='report.txt')

В заголовке ответа Content-Disposition появится имя 'report.txt':

attachment; filename="report.txt"

Пример

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

from fastapi import FastAPI from fastapi.responses import FileResponse app = FastAPI() @app.get('/download') def download(): return FileResponse('data.txt')

В заголовке ответа Content-Disposition появится имя исходного файла:

attachment; filename="data.txt"

Пример

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

from fastapi import FastAPI from fastapi.responses import FileResponse app = FastAPI() @app.get('/download') def download(): return FileResponse('data.txt', filename='отчёт.txt')

FastAPI закодирует не-ASCII символы по стандарту RFC 5987:

attachment; filename="report.txt"; filename*=UTF-8''%D0%BE%D1%82%D1%87%D1%91%D1%82.txt

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

  • класс FileResponse,
    который отдаёт файл с диска в качестве ответа
  • параметр media_type,
    который задаёт MIME-тип отдаваемого файла
  • параметр content_disposition_type,
    который задаёт тип заголовка Content-Disposition
  • класс StreamingResponse,
    который отдаёт данные потоком
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить