# Dokumentasi Django 6.0.7

# Obyek `File`

The `django.core.files` module and its submodules contain built-in classes for basic file handling in Django.

## Kelas `File`

class File(file_object, name=None)

  The `File` class is a thin wrapper around a Python file object with some Django-specific additions. Internally, Django uses this class when it needs to represent a file.

  Obyek `File` mempunyai atribut dan metode berikut:

  name

    Nama dari berkas termasuk jalur relatif dari `MEDIA_ROOT`.

  size

    Ukuran berkas dalam byte.

  file

    The underlying file object that this class wraps.

    Berhati-hatilah dengan atribut ini dalam subkelas.

    Some subclasses of `File`, including `ContentFile` and `FieldFile`, may replace this attribute with an object other than a Python file object. In these cases, this attribute may itself be a `File` subclass (and not necessarily the same subclass). Whenever possible, use the attributes and methods of the subclass itself rather than those of the subclass's `file` attribute.

  mode

    Suasana baca/tulis untuk berkas.

  open(mode=None, *args, **kwargs)

    Open or reopen the file (which also does `File.seek(0)`). The `mode` argument allows the same values as Python's built-in `open()`. `*args` and `**kwargs` are passed after `mode` to Python's built-in `open()`.

    When reopening a file, `mode` will override whatever mode the file was originally opened with; `None` means to reopen with the original mode.

    Itu dapat digunakan sebagai pengelola konteks, misalnya `with file.open() as f:`.

  __iter__()

    Iterate over the file yielding one line at a time.

  chunks(chunk_size=None)

    Iterate over the file yielding "chunks" of a given size. `chunk_size` defaults to 64 KB.

    This is especially useful with very large files since it allows them to be streamed off disk and avoids storing the whole file in memory.

  multiple_chunks(chunk_size=None)

    Returns `True` if the file is large enough to require multiple chunks to access all of its content give some `chunk_size`.

  close()

    Tutup berkas.

  Sebagai tambahan pada metode-metode terlampir, `File` membuka atribut-atribut berikut dan metode dari `file` object: `encoding`, `fileno`, `flush`, `isatty`, `newlines`, `read`, `readinto`, `readline`, `readlines`, `seek`, `tell`, `truncate`, `write`, `writelines`, `readable()`, `writable()`, dan `seekable()` nya.

## Kelas `ContentFile`

class ContentFile(content, name=None)

  Kelas `ContentFile` mewarisi dari `File`, tapi tidak seperti `File` itu berjalan pada isi string (byte juga didukung), daripada sebuah berkas sebenarnya. Sebagai contoh:

      from django.core.files.base import ContentFile

      f1 = ContentFile("esta frase está en español")
      f2 = ContentFile(b"these are bytes")

## Kelas `ImageFile`

class ImageFile(file_object, name=None)

  Django menyediakan sebuah kelas siap-pakai khususnya untuk gambar. `django.core.files.images.ImageFile` mewarisi semua atribut dan metode dari `File`, dan tambahannya menyediakan berikut:

  width

    Lebar gambar dalam pixel.

  height

    Tinggi gambar dalam pixel.

## Metode tambahan pada berkas-berkas dilampirkan pada obyek

`File` apapun yang berkaitan dengan sebuah obyek (seperti `Car.photo`, dibawah) akan juga mempunyai sepasang metode-metode tambahan:

File.save(name, content, save=True)

  Saves a new file with the file name and contents provided. This will not replace the existing file, but will create a new file and update the object to point to it. If `save` is `True`, the model's `save()` method will be called once the file is saved. That is, these two lines:

      >>> car.photo.save("myphoto.jpg", content, save=False)
      >>> car.save()

  are equivalent to:

      >>> car.photo.save("myphoto.jpg", content, save=True)

  Note that the `content` argument must be an instance of either `File` or of a subclass of `File`, such as `ContentFile`.

File.delete(save=True)

  Removes the file from the model instance and deletes the underlying file. If `save` is `True`, the model's `save()` method will be called once the file is deleted.