Forms: File Upload — HTML

Pernah upload foto profil di Tokopedia atau bukti transfer di bank? Itu pakai — tag yang munculin tombol "Pilih File" di browser, dipakai user buat ngirim…

<input type="file"> memunculkan tombol "Pilih File". Pengunjung pakai tombol itu buat memilih file dari HP atau laptopnya, misalnya foto profil atau bukti transfer. Supaya isi filenya beneran sampai di server (komputer yang menerima data form), form-nya butuh satu pengaturan tambahan bernama enctype.

🧪 Tebakan cepat: kalau enctype lupa ditulis, apa yang sampai di server, fotonya atau cuma nama filenya? Tebak dulu, jawabannya ada di bagian "Form upload, bagian per bagian".

Form upload, bagian per bagian

<form method="post" enctype="multipart/form-data">
  <label for="foto">Foto profil</label>
  <input type="file" id="foto" name="foto" accept="image/*">
  <button type="submit">Upload</button>
</form>

Dari atas ke bawah:

Hasilnya: klik "Pilih File", jendela pemilih file cuma menampilkan gambar. Pilih satu foto, klik Upload, fotonya terkirim ke server.

Atur jenis file dengan accept

Isi accept bisa jenis umum atau akhiran file:

accept cuma menyaring jendela pemilih file. Pengunjung masih bisa mengganti saringannya ke "Semua file", jadi server tetap harus mengecek ulang jenis dan ukuran file yang datang.

Banyak file sekaligus dengan multiple

<input type="file" name="galeri" accept="image/*" multiple>

multiple ditulis tanpa nilai, cukup namanya. Dengan atribut ini, pengunjung bisa memilih beberapa file sekaligus. Tanpa multiple, cuma satu file yang bisa dipilih.

⚠️ Jebakan yang sering ketemu

TL;DR: File dipilih lewat <input type="file" name="...">. Form-nya pakai method="post" dan enctype="multipart/form-data", kalau gak, yang terkirim cuma nama filenya. accept="image/*" menyaring jenis file, multiple membolehkan banyak file. Input file dan tombol type="submit" ditulis di dalam <form> yang sama, dan server tetap mengecek ulang setiap file.

Yang akan kamu pelajari