# dokumentasi Django 2.2.9.dev20191202104323

# 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)

  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`

    file object pokok dimana kelas ini dibungkus.

    Berhati-hatilah dengan atribut ini dalam subkelas.

    Beberapa subkelas dari `File`, termasuk `ContentFile` dan `FieldFile`, mungkin mengganti atribut ini dengan sebuah obyek selain sebuah file object Python. Dalam kasus ini, atribut ini itu sendiri mungkin berupa subkelas `File` (dan belum tentu subkelas sama). Bilamana memungkinkan, gunakan atribut dan metode dari subkelas itu sendiri daripada itu dari subkelas atribut `file`.

  `mode`

    Suasana baca/tulis untuk berkas.

  `open`(mode=None)

    Open or reopen the file (which also does `File.seek(0)`). The `mode` argument allows the same values as 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`(File)

  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)

  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()

  adalah setara pada:

      >>> 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.