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

Атрибут size

Атрибут size класса UploadedFile предоставляет доступ к размеру загруженного файла в байтах. Это значение автоматически вычисляется Django при загрузке файла и может быть использовано для проверки ограничений, отображения информации о файле или логирования. Атрибут доступен только для чтения и возвращает целое число.

Синтаксис

uploaded_file.size

Где uploaded_file - экземпляр класса UploadedFile или его подклассов (TemporaryUploadedFile, InMemoryUploadedFile). Атрибут возвращает целое число (количество байт).

Пример

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

from django.shortcuts import render from django.http import HttpResponse def handle_upload(request): if request.method == 'POST' and request.FILES.get('file'): uploaded_file = request.FILES['file'] file_size = uploaded_file.size return HttpResponse(f"File size: {file_size} bytes") return render(request, 'upload_form.html')

Результат выполнения кода при загрузке файла размером 2 КБ:

"File size: 2048 bytes"

Пример

Пример проверки размера файла перед сохранением. Если размер превышает допустимый (1 МБ), возвращаем ошибку:

from django.shortcuts import render from django.http import HttpResponse MAX_SIZE = 1024 * 1024 # 1 MB def upload_file(request): if request.method == 'POST' and request.FILES.get('document'): doc = request.FILES['document'] if doc.size > MAX_SIZE: return HttpResponse("File size exceeds 1 MB limit", status=400) # Сохранение файла return HttpResponse("File uploaded successfully") return render(request, 'upload_form.html')

Результат выполнения кода при попытке загрузить файл размером 1.5 МБ:

"File size exceeds 1 MB limit"

При успешной загрузке файла:

"File uploaded successfully"

Пример

Использование атрибута size для вывода информации о файле в модели:

from django.db import models class Document(models.Model): title = models.CharField(max_length=100) file = models.FileField(upload_to='documents/') uploaded_at = models.DateTimeField(auto_now_add=True) def get_file_size(self): if self.file and hasattr(self.file, 'size'): return self.file.size return None # Использование в представлении doc = Document.objects.get(id=1) size = doc.get_file_size() print(f"Document {doc.title} size: {size} bytes")

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

"Document report size: 15360 bytes"

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

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