Bisakah kita membuat file dalam javascript?

JavaScript adalah salah satu bahasa pemrograman paling populer, terutama karena ia menangani front-end situs web saat berjalan di dalam browser. Dengan kemajuan dalam standar web, kami telah menggunakannya untuk menyelesaikan lebih banyak tugas yang sebelumnya sangat sulit atau tidak mungkin dilakukan hanya dengan JavaScript

Dalam tutorial ini, Anda akan belajar cara membuat dan menyimpan file dengan JavaScript. Kami akan membahas tiga teknik berbeda yang dapat Anda gunakan untuk melakukannya

Menggunakan URL Data untuk Menyimpan File

Cara termudah untuk menyimpan file adalah dengan menggunakan URL Data yang menyertakan semua informasi yang relevan. URL data ini adalah URL khusus yang diawali dengan skema

data:[<mediatype>][;base64],<data>
19. Mereka ideal untuk menyematkan file kecil di dokumen HTML Anda. URL ini mengikuti sintaks berikut

1
data:[<mediatype>][;base64],<data>

Token

data:[<mediatype>][;base64],<data>
20 sebenarnya adalah tipe MIME yang menentukan sifat dan format dokumen atau file. Nilai standarnya adalah
data:[<mediatype>][;base64],<data>
_21. Token
data:[<mediatype>][;base64],<data>
22 bersifat opsional dan diperlukan hanya jika Anda ingin menyimpan data biner secara tekstual. Kami menentukan data aktual kami setelah semua token ini

Kita dapat menggunakan atribut

data:[<mediatype>][;base64],<data>
_23 untuk menentukan nama file tempat kita ingin meletakkan semua konten kita setelah diunduh. Berikut adalah contoh penggunaan semua atribut ini secara bersamaan

1
<a download="monty.txt" href="data:text/plain;charset=utf-8,My name is Monty.">Download Text File with Name</a>

JavaScript bisa sangat berguna saat Anda ingin menjadikan semuanya dinamis. Ini sebuah contoh

1
const link = document.querySelector('a.dynamic');
2
3
let name = 'Monty';
4
data:[<mediatype>][;base64],<data>
0
data:[<mediatype>][;base64],<data>
1
data:[<mediatype>][;base64],<data>
2
data:[<mediatype>][;base64],<data>
3
data:[<mediatype>][;base64],<data>
4
data:[<mediatype>][;base64],<data>
5
data:[<mediatype>][;base64],<data>
6
data:[<mediatype>][;base64],<data>
7________0______8
data:[<mediatype>][;base64],<data>
9

Kita mulai dengan memilih tautan kita menggunakan metode

data:[<mediatype>][;base64],<data>
_24 dan kemudian membuat banyak variabel untuk menyimpan nama file dan isinya. Menggunakan template literal memungkinkan kita bekerja dengan string multi-baris dengan mudah

Kami membuat URL data kami dengan menggabungkan metadata dengan konten aktual yang disandikan menggunakan fungsi

data:[<mediatype>][;base64],<data>
25. Demo CodePen berikut menunjukkan metode menyimpan file teks ini menggunakan JavaScript

Menggunakan Gumpalan untuk Membuat dan Menyimpan File

Gumpalan adalah objek mirip file dalam JavaScript yang berisi data mentah. Data mentah ini dapat dibaca sebagai teks atau sebagai data biner. Dalam tutorial ini, kita akan menggunakan blob untuk membuat dan menyimpan file dalam JavaScript

Kita dapat membuat gumpalan kita sendiri menggunakan konstruktor

data:[<mediatype>][;base64],<data>
26, yang menerima larik objek tertentu untuk dimasukkan ke dalam gumpalan. Anda dapat meneruskan tipe data MIME sebagai pasangan kunci-nilai dalam objek yang merupakan parameter kedua dari konstruktor
data:[<mediatype>][;base64],<data>
26. Ini adalah string kosong secara default

Kita dapat memodifikasi contoh terakhir di bagian sebelumnya untuk menggunakan blob dengan kode JavaScript berikut

1
1
1
2
3
let name = 'Monty';
4
data:[<mediatype>][;base64],<data>
0____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ E jelas_

Kami membuat

data:[<mediatype>][;base64],<data>
_28 kami dengan memanggil konstruktor
data:[<mediatype>][;base64],<data>
26 dan meneruskan variabel
data:[<mediatype>][;base64],<data>
30 kami ke sana sebagai elemen array. Setelah itu, kita cukup menetapkan nilai atribut ________0______31 dan
data:[<mediatype>][;base64],<data>
23. URL dalam hal ini dibuat dengan memanggil fungsi
data:[<mediatype>][;base64],<data>
33, yang mengembalikan string yang berisi URL untuk objek yang kita berikan padanya

Mari selangkah lebih maju dan buat blob tempat teks diperoleh secara dinamis dari elemen

data:[<mediatype>][;base64],<data>
34 di halaman web. Anda akan dapat menulis apa pun yang Anda suka di
data:[<mediatype>][;base64],<data>
34 dan kemudian klik tombol Simpan File untuk menyimpannya sebagai file

1
1
0
2
let name = 'Monty';
3
4
1
5
data:[<mediatype>][;base64],<data>
1
1
7
data:[<mediatype>][;base64],<data>
3
1
9
data:[<mediatype>][;base64],<data>
5
const link = document.querySelector('a.dynamic');
1
data:[<mediatype>][;base64],<data>
6
const link = document.querySelector('a.dynamic');
3
data:[<mediatype>][;base64],<data>
8
<a download="monty.txt" href="data:text/plain;charset=utf-8,My name is Monty.">Download Text File with Name</a>
5
const link = document.querySelector('a.dynamic');
6
<a download="monty.txt" href="data:text/plain;charset=utf-8,My name is Monty.">Download Text File with Name</a>
7
const link = document.querySelector('a.dynamic');
8
const link = document.querySelector('a.dynamic');
9
2
0
2
1
1
7
2
3
2
4
2
5
2
6
2
7

Kami mulai dengan mendapatkan referensi ke tombol kami dan kemudian mendengarkan acara kliknya. Setelah tombol diklik, kami mendapatkan nilai elemen

data:[<mediatype>][;base64],<data>
34 kami dan mengubahnya menjadi gumpalan. Setelah itu, kami membuat URL yang mereferensikan gumpalan kami dan menetapkannya ke atribut
data:[<mediatype>][;base64],<data>
31 dari tag jangkar yang kami buat

Anda dapat mencobanya di demo CodePen berikut. Sebagai latihan, coba ubah kode sehingga menyimpan file dengan nama yang dimasukkan oleh pengguna alih-alih sesuatu yang statis

Cara Menyimpan File di Folder Tertentu Menggunakan JavaScript

Mari kita mulai dengan menjawab pertanyaan ini terlebih dahulu. Singkatnya, Anda tidak dapat secara sembarangan memilih direktori tempat file disimpan dalam JavaScript. Hanya pengguna yang memiliki kendali atas lokasi penyimpanan file

Alasan pengembang web tidak diizinkan untuk memiliki kendali penuh atas lokasi penyimpanan file oleh browser berkaitan dengan keamanan. Internet akan jauh lebih tidak aman jika setiap situs web memiliki akses ke sistem file di perangkat Anda. Mereka dapat dengan mudah menyuntikkan kode berbahaya ke dalam sistem Anda atau melihat informasi pribadi

Sebelumnya, tidak mungkin untuk menyimpan file di mana pun kecuali folder unduhan default, yang ditentukan oleh pengaturan browser dan bukan situs web individu. Namun, memungkinkan pengembang untuk menyarankan di mana file dapat disimpan setelah mereka diberi akses oleh pengguna. Perlu diingat bahwa dukungan browser yang lebih luas saat ini kurang untuk API, dan browser yang mendukungnya hanya melakukannya sebagian

Mari ubah contoh terakhir kita dari bagian sebelumnya untuk membuat dan menyimpan file dalam JavaScript dengan File System Access API

1
1
0
2
let name = 'Monty';
3
4
3
4
data:[<mediatype>][;base64],<data>
1
1
7
data:[<mediatype>][;base64],<data>
3
const link = document.querySelector('a.dynamic');
1
data:[<mediatype>][;base64],<data>
5
const link = document.querySelector('a.dynamic');
3
data:[<mediatype>][;base64],<data>
6
1
7
data:[<mediatype>][;base64],<data>
8
let name = 'Monty';
4
<a download="monty.txt" href="data:text/plain;charset=utf-8,My name is Monty.">Download Text File with Name</a>
5
let name = 'Monty';
6
<a download="monty.txt" href="data:text/plain;charset=utf-8,My name is Monty.">Download Text File with Name</a>
7
let name = 'Monty';
8
const link = document.querySelector('a.dynamic');
9
4
0
2
1
4
2
2
3
4
4
2
5
4
6
2
7
4
8
4
9
data:[<mediatype>][;base64],<data>
00
data:[<mediatype>][;base64],<data>
01
data:[<mediatype>][;base64],<data>
02
data:[<mediatype>][;base64],<data>
03
data:[<mediatype>][;base64],<data>
04
data:[<mediatype>][;base64],<data>
05
data:[<mediatype>][;base64],<data>
06
data:[<mediatype>][;base64],<data>
07
data:[<mediatype>][;base64],<data>
08
data:[<mediatype>][;base64],<data>
09
data:[<mediatype>][;base64],<data>
10
data:[<mediatype>][;base64],<data>
11
data:[<mediatype>][;base64],<data>
12
data:[<mediatype>][;base64],<data>
13
data:[<mediatype>][;base64],<data>
14
data:[<mediatype>][;base64],<data>
15
data:[<mediatype>][;base64],<data>
16
data:[<mediatype>][;base64],<data>
17
2
6

Seperti biasa, kita mulai dengan membuat gumpalan

data:[<mediatype>][;base64],<data>
30 di dalam elemen
data:[<mediatype>][;base64],<data>
34. Kami membuat objek yang berisi opsi berbeda untuk pemilih file kami yang muncul saat kami memanggil metode
data:[<mediatype>][;base64],<data>
40. Kami dapat menyarankan nama untuk menyimpan file di sini dan juga meneruskan array jenis file yang diizinkan untuk disimpan. Metode ini mengembalikan
data:[<mediatype>][;base64],<data>
_41 di mana kita dapat memanggil metode
data:[<mediatype>][;base64],<data>
42

Metode

data:[<mediatype>][;base64],<data>
42 membuat aliran yang dapat ditulisi, dan kami menulis blob yang kami buat sebelumnya ke aliran ini. Akhirnya, kami menutup aliran yang dapat ditulisi kami. Pada titik ini, konten dari aliran disimpan ke file

Coba tulis sesuatu di

data:[<mediatype>][;base64],<data>
34 CodePen berikut, lalu klik tombol Save File. Demo tidak akan berfungsi di Firefox, jadi Anda harus mencoba menggunakan Chrome atau Edge

Pikiran Akhir

Dalam tutorial ini, kita mempelajari tiga teknik berbeda untuk membuat dan menyimpan file dalam JavaScript. Dua teknik pertama mengharuskan kita membuat tag jangkar dan menetapkan nilai ke atribut

data:[<mediatype>][;base64],<data>
31 dan
data:[<mediatype>][;base64],<data>
23 mereka. Teknik terakhir melibatkan penggunaan File System Access API dan memberi kami kontrol yang lebih baik atas berbagai aspek proses seperti mengubah lokasi pengunduhan default dengan izin pengguna. Namun, saat ini tidak memiliki dukungan browser yang signifikan untuk digunakan dalam proyek nyata

Bisakah JavaScript membuat file?

'FileSaver' adalah pustaka JavaScript yang dapat kita gunakan untuk membuat file teks dalam JavaScript vanilla . Pengguna dapat menggunakan CDN perpustakaan untuk menggunakannya dengan HTML dan JavaScript.

Bagaimana cara membuat file baru di JavaScript?

Cara Membuat dan Menyimpan file teks dalam JavaScript .
Fungsi JavaScript yang diaktifkan pada peristiwa klik tombol
Buat konstruktor Blob, berikan data di dalamnya untuk menyimpan dan menyebutkan jenis datanya
Dan terakhir, panggil saveAs(Blob object, "your-file-name. teks") dari FileSaver. perpustakaan js

Bagaimana cara membuat dan mengunduh file dalam JavaScript?

Jadi langkah-langkah untuk mendownload filenya adalah. .
Gunakan ambil API untuk mengunduh file skrip
Ubah data menjadi tipe blob
Ubah objek blob menjadi string dengan menggunakan URL. buatObjectURL()

Di mana saya membuat file JavaScript?

Cara membuat a. .
Buka notepad
Tempelkan fungsi Anda di dokumen baru. .
Buka menu "file" dan "simpan sebagai"