Sebagian berkas memang dimaksudkan untuk disimpan, bukan dilihat: laporan tahunan, katalog produk, formulir pendaftaran. Masalahnya, browser senang membuka sendiri berkas seperti PDF dan JPG — pengunjung harus mencari tombol simpan di tab yang terbuka itu. Atribut download membalik perilaku tersebut: satu klik, berkas langsung tersimpan ke folder unduhan.
Atribut download #
Aturan: atribut download dipasang pada elemen a untuk memerintahkan browser menyimpan sumber daya tujuan, alih-alih membukanya. Atribut ini termasuk atribut boolean — cukup ditulis tanpa nilai:
<p><a href="laporan-tahunan.pdf" download>Unduh laporan tahunan (PDF)</a></p>Hasil Render: teks link tampil seperti biasa, tetapi satu klik tidak membuka tab pembaca PDF — browser langsung mengunduh laporan-tahunan.pdf. Mari kita telaah:
href="laporan-tahunan.pdf": berkas tujuan, ditulis dengan URL relatif seperti link halaman biasa.- Atribut
download: kehadirannya saja sudah cukup — atribut boolean tidak memerlukan nilai.
Mengganti Nama File Unduhan #
download juga menerima nilai: nama yang dipakai browser saat menyimpan berkas. Atribut type melengkapinya dengan informasi jenis berkas sehingga browser tahu sejak awal apa yang akan diunduh:
<p><a href="menu-lengkap.pdf" download="menu-kedai-siti.pdf" type="application/pdf">Unduh menu lengkap</a></p>Nilai type memakai penanda MIME — application/pdf untuk PDF, image/jpeg untuk JPG — dan berfungsi sebagai informasi; nilai ini tidak mengubah isi berkasnya.
Batasan Keamanan: Same-Origin #
Mekanisme download punya pagar keamanan: atribut ini hanya dihormati bila URL tujuan berada pada origin yang sama dengan halaman kita, atau memakai skema blob: dan data:. Untuk link lintas domain, browser mengabaikan atribut download seolah-olah ia tidak ditulis:
<!-- download diabaikan: berkas berada di domain berbeda -->
<p><a href="https://example.org/laporan.pdf" download>Laporan cadangan</a></p>Link di atas tetap sah dan tetap berfungsi — hanya perilaku unduhnya yang tidak terjadi; browser membuka berkas seperti link biasa. Pagar ini mencegah halaman kita memaksa pengunduhan berkas dari situs lain yang tidak kita kendalikan.
Ringkasan #
- Atribut
downloadpadaamemerintahkan browser menyimpan berkas alih-alih membukanya. - Nilai
download="nama.pdf"mengganti nama berkas hasil unduhan;typememberi tahu jenis MIME-nya. - Atribut ini hanya dihormati untuk URL same-origin serta skema
blob:dandata:— lintas origin diabaikan browser. - Manfaat terbesarnya pada berkas yang biasa dibuka browser: PDF, JPG, dan TXT.
Perilaku link berikutnya tidak menyimpan berkas, melainkan membuka tempat baru untuk menampilkannya: tab baru.