Last Updated on January 13, 2023 by
Mendownload file adalah aspek penting dalam menjelajahi internet. Banyak file diunduh dari internet setiap hari, dari file biner (seperti aplikasi, gambar, video, dan audio) hingga file teks biasa. Sebagai Developer sudah menjadi hal yang penting bagi kita menyediakan fasilitas download file pada website yang sedang kita bangun, terutama beberapa file yang dibutuhkan oleh para pengguna. Dalam pembahasan kali ini kita akan belajar bagaimana membuat Download file dengan menggunakan Javascript.
Metode pembuatan download file dengan Javascript memungkinkan Anda mendeklarasikan fungsi unik dalam pengunduhan file tanpa perlu menghubungi server dan memberikan Anda kemungkinan untuk menyembunyikan jalur file dari pengguna.
Table of Contents
Penjelasan Singkat Apa Itu Membuat Download File Javascript
Membuat download file otomatis dengan Javascript adalah metode yang di mana memungkinkan Anda untuk mengambil file langsung dari URL dengan mendeklarasikan fungsi dari Javascript.
Hal Itu akan dilakukan tanpa perlu mengirim permintaan tindakan atau respon ke server. Bagi pengguna HTML5, Anda tak perlu khawatir karena download file otomatis ini mendukung browser Anda.
Download file otomatis memungkinkan Anda untuk membuat tautan unduhan yang aman sehingga tak perlu khawatir pengguna akan melihat jalur filenya.
Anda juga dapat membuat enkripsi pada tautan unduhan file dengan menyetel tanggal kedaluwarsa dan kata sandi.
Di masa lalu, sulit bagi website populer untuk langsung membuat download file otomatis dikarenakan masalah keamanan, sejak adanya metode HTML5 dan Javascript ini tidak akan lagi menjadi masalah.
Membuat Download File Otomatis Javascript Tanpa Server
Berikut ini merupakan sintaks yang dapat anda gunakan dalam membuat download file langsung dari browser :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Belajar Download File Javascript</title> </head> <style> textarea { color: white; background-color: black; width: 400px; } input { color: white; border: 2px solid red; background-color: black; border-radius: 10px; } </style> <body> <textarea id="text" rows="4">Belajar membuat download file dengan javascript</textarea> <br /> <button type="button" id="download-btn">Download</button> </body> <script> function download(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } document.getElementById("download-btn").addEventListener("click", function () { var text = document.getElementById("text").value; var filename = "sample.txt"; download(filename, text); }, false); </script> </html>
Dengan membuat download file javascript seperti ini memungkinkan Anda untuk dapat mengambil konten yang telah disediakan di area teks. File ini akan terunduh pada perangkat komputer dengan jenis file .TXT sederhana yang dapat dibuka pada aplikasi editor sederhana.
Fungsi yang dideklarasikan menetapkan atribut unduhan di tempat Anda memberi nama file. Fungsi encodeURIComponent() berguna untuk menyandikan konten. Metode click() digunakan untuk meminta proses download file dimulai saat Anda mengklik tombol download.
Disisi Klien, Anda Dapat Membuat Download File dengan Menggunakan FileSaver.js
Terdapat opsi lain yang dapat digunakan untuk mendownload file tanpa perlu menghubungi server. Kali ini kami akan menggunakan pustaka Javascript yang bernama FileSaver.js. Berikut di bawah ini contoh sintaks untuk mengimplementasikan saveas() pada interface FileSaver.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Belajar Download File Javascript</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdn.rawgit.com/eligrey/FileSaver.js/5ed507ef8aa53d8ecfea96d96bc7214cd2476fd2/FileSaver.min.js"></script> </head> <body> <input type="text" id="text"> <br/> <button id="button" onclick="download();">Download file</button> </body> <script> function download() { var save = document.getElementById("text").value; var blob = new Blob([save], { type: "text/plain;charset=utf-8" }); saveAs(blob, "sample-2.txt"); } </script> </html>
FileSaver sendiri merupakan solusi yang solid di sisi klien dengan tidak perlu melibatkan sisi server, misalnya hal ini dapat mencegah pengiriman informasi sensitive ke server eksternal.
Dengan adanya opsi ini memberikan Anda kemungkinan untuk menerapkan SaveAs() interface FileSaver pada browser yang tidak mendukung. Hal ini ditetapkan ke dalam nilai blob.
Apa Itu Blob Dalam Membuat Download File Otomatis
Blob yang merupakan singkatan dari Binary Large Object, mewakili data yang tidak mendukung format asli dari Javascript. Hal ini tidak terbatas pada objek multimedia, program dan cuplikan kode saja.
Perlu diingat karena Blob memiliki batasan ukuran berdasarkan browser yang didukung FileSaver.js hanya cocok digunakan untuk file berukuran kecil atau sedang (Maks pada file ukuran 500-800 MiB).
Perhatikan table di bawah ini untuk memeriksa kompatibilitas FileSaver.js di berbagai browser :
Browser | Build As | File Names | Ukuran Blob Maks | Ketergantungan |
Firefox 20+ | Blob | Ya | 800 MiB | Tidak ada |
Firefox < 20 | data: URI | Tidak | t/a | Blob.js |
Chrome | Blob | Ya | 500 MiB | Tidak ada |
Chrome untuk Android | Blob | Ya | 500 MiB | Tidak ada |
Edge | Blob | Ya | Tidak dikenal | Tidak ada |
IE 10 | Blob | Ya | 600 MiB | Tidak ada |
Opera 15+ | Blob | Ya | 500 MiB | Tidak ada |
Opera < 15+ | data: URI | Tidak | t/a | Blob.js |
Safari 6.1+ | Blob | Tidak | Tidak dikenal | Tidak ada |
Safari < 6 | data: URI | Tidak | t/a | Blob.js |
Cuplikan kode berikut ini dapat memeriksa apakah browser mendukung objek blob :
try { var isFileSaverSupported = !!new Blob; } catch (e) {}
Bagian Akhir
Dengan kedua metode di atas akan memberikan Anda informasi bagaimana cara membuat download file otomatis dengan Javascript tanpa perlu melalui server dan dapat menggunakan FileSaver.js pada browser yang tidak mendukung.
Dalam beberapa kasus, daripada mengunduh blob , pengguna Safari 6.1+ akan membukanya. Kemudian, mereka harus menekan kombinasi ? + S pada keyboard mereka untuk menyimpan file yang dibuka.
Karena FileSaver.js hanya dapat mendukung file berukuran kecil hingga sedang , Anda dapat menggunakan StreamSaver.js untuk file berukuran besar.
Temukan lebih banyak artikel seri belajar Javascript maupun bahasa pemrograman lainnya hanya di CODEKEY. Klik https://codekey.id/ sekarang juga untuk langsung belajar gratis. Sampai bertemu lagi!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.