Атрибут name

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

Синтаксис

pythonuploaded_file.name

Пример

Рассмотрим простой пример получения имени загруженного файла в представлении Django:

pythonfrom django.shortcuts import render

def upload_view(request):
  if request.method == 'POST':
    uploaded_file = request.FILES['document']
    file_name = uploaded_file.name
    print(file_name)
    return render(request, 'upload_success.html', {'name': file_name})
  return render(request, 'upload_form.html')

Результат выполнения кода при загрузке файла "report.pdf":

python"report.pdf"

Пример

Пример использования атрибута name для обработки нескольких загруженных файлов:

pythonfrom django.shortcuts import render

def multiple_upload_view(request):
  if request.method == 'POST':
    files = request.FILES.getlist('documents')
    file_names = [file.name for file in files]
    print(file_names)
    return render(request, 'upload_success.html', {'names': file_names})
  return render(request, 'upload_form.html')

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

python["image1.jpg", "image2.png"]

Пример

Пример использования атрибута name для генерации безопасного имени при сохранении файла в модели:

pythonfrom django.db import models
from django.core.files.storage import default_storage

class Document(models.Model):
  title = models.CharField(max_length=100)
  file = models.FileField(upload_to='documents/')
  
  def save(self, *args, **kwargs):
    if self.file:
      original_name = self.file.name
      print(original_name)
      self.file.name = default_storage.get_available_name(self.file.name)
    super().save(*args, **kwargs)

Результат выполнения кода при сохранении файла "resume.pdf":

python"resume.pdf"

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

  • класс UploadedFile,
    представляющий загруженный файл в Django
  • атрибут size,
    возвращающий размер загруженного файла в байтах
  • атрибут content_type,
    возвращающий MIME-тип загруженного файла
  • класс TemporaryUploadedFile,
    представляющий загруженный файл, сохраненный во временном хранилище