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

Класс FileStorage

Класс FileStorage используется во Flask для представления файла, загруженного через форму. Объект этого класса создаётся автоматически, когда файл приходит в запросе, и доступен через словарь request.files. Класс хранит имя файла, MIME-тип, размер и поток данных, а также позволяет сохранить файл на диск или прочитать его содержимое. Параметры объекта задаются Flask при разборе запроса, поэтому вручную создавать его обычно не требуется.

Синтаксис

from werkzeug.datastructures import FileStorage file = FileStorage(stream=None, filename=None, name=None, content_type=None, content_length=None, headers=None)

Основные параметры:

  • stream - поток с данными файла;
  • filename - имя загруженного файла;
  • name - имя поля формы, из которого получен файл;
  • content_type - MIME-тип файла;
  • content_length - размер файла в байтах;
  • headers - HTTP-заголовки, связанные с файлом.

Пример

Давайте создадим простое приложение Flask, которое принимает файл из формы и выводит его имя и MIME-тип:

from flask import Flask, request, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/upload', methods=['POST']) def upload(): file = request.files['file'] res = f"{file.filename} - {file.content_type}" return res

Шаблон с формой для загрузки файла:

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

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

"abcde.txt - text/plain"

Пример

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

from flask import Flask, request, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/upload', methods=['POST']) def upload(): file = request.files['file'] file.save('uploads/' + file.filename) return 'file saved'

Шаблон с формой:

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

Результат выполнения кода:

"file saved"

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

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