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

Атрибут content_length

Атрибут content_length применяется к объекту FileStorage, который Flask создаёт при получении файла из формы. Атрибут возвращает размер файла в байтах в виде целого числа. Значение берётся из заголовка Content-Length HTTP-запроса. Если размер неизвестен, атрибут возвращает None.

Атрибут доступен только для чтения. Он удобен для проверки размера файла до его сохранения на диск, например, чтобы отклонить слишком большие файлы.

Синтаксис

file.content_length

Пример

Давайте выведем размер загруженного файла в ответ сервера. Сначала создадим форму для загрузки:

<form method="post" enctype="multipart/form-data"> <input type="file" name="file"> <button type="submit">Upload</button> </form>

Теперь напишем обработчик, который принимает файл и возвращает его размер:

from flask import Flask, request, render_template app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': file = request.files['file'] return f"Size: {file.content_length} bytes" return render_template('index.html')

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

Size: 12 bytes

Пример

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

from flask import Flask, request, render_template app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': file = request.files['file'] if file.content_length > 1024: return 'File too large' return 'File accepted' return render_template('index.html')

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

File too large

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

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