Adakah yang bisa memberikan kode sampel untuk membaca dan menulis file menggunakan JavaScript?
javascript
file-io
pengguna4642212
sumber
sumber
Jawaban:
Untuk kelengkapan, OP tidak menyatakan dia ingin melakukan ini di browser (jika dia, seperti yang telah disebutkan, umumnya tidak mungkin)
Namun javascript per se memang memungkinkan ini; itu dapat dilakukan dengan javascript sisi server.
Lihat dokumentasi ini di kelas File JavascriptSunting : Tautan itu ke dokumen Sun yang sekarang telah dipindahkan oleh Oracle.
Untuk mengikuti perkembangannya, inilah dokumentasi node.js untuk kelas FileSystem: http://nodejs.org/docs/latest/api/fs.html
Sunting (2) : Anda dapat membaca file sisi klien sekarang dengan HTML5: http://www.html5rocks.com/en/tutorials/file/dndfiles/
sumber
Tidak. Javascript sisi-browser tidak memiliki izin untuk menulis ke mesin klien tanpa banyak opsi keamanan yang harus dinonaktifkan
sumber
This answer is not useful
.Masa depan ada di sini! Proposal mendekati penyelesaian, tidak ada lagi ActiveX atau flash atau java. Sekarang kita bisa menggunakan:
API Sistem File
Seret Asli & Jatuhkan Akses File
Anda bisa menggunakan Drag / Drop untuk memasukkan file ke browser, atau kontrol unggah yang sederhana. Setelah pengguna memilih file, Anda dapat membacanya dengan Javascript: http://www.html5rocks.com/en/tutorials/file/dndfiles/
sumber
inilah proposal mozilla
http://www-archive.mozilla.org/js/js-file-object.html
ini diimplementasikan dengan sakelar kompilasi dalam spidermonkey, dan juga dalam skrip extends adobe. Selain itu (saya pikir) Anda mendapatkan objek File di ekstensi firefox.
badak memiliki fungsi readFile (agak sederhana) https://developer.mozilla.org/en/Rhino_Shell
untuk operasi file yang lebih kompleks di badak, Anda dapat menggunakan metode java.io.File.
Anda tidak akan mendapatkan semua ini di browser. Untuk fungsionalitas serupa di browser Anda dapat menggunakan fungsi database SQL dari HTML5, kegigihan sisi klien, cookie, dan objek penyimpanan flash.
sumber
Fungsi Javascript ini menyajikan kotak dialog "Simpan Sebagai" yang lengkap untuk pengguna yang menjalankan ini melalui browser. Pengguna menekan OK dan file disimpan.
Sunting: Kode berikut hanya berfungsi dengan Browser IE sejak Firefox dan Chrome menganggap kode ini sebagai masalah keamanan dan telah memblokirnya agar tidak berfungsi.
Meminta fungsi:
sumber
Jika Anda menggunakan JScript (Microsoft's Javascript) untuk melakukan skrip lokal menggunakan WSH (BUKAN di browser!) Anda dapat menggunakan
Scripting.FileSystemObject
untuk mengakses sistem file.Saya pikir Anda dapat mengakses objek yang sama di IE jika Anda mematikan banyak pengaturan keamanan, tetapi itu akan menjadi ide yang sangat, sangat buruk.
MSDN di sini
sumber
hta
aplikasi dan itu menyelesaikannyaSaat ini, file dapat ditulis dan dibaca dari konteks tab / jendela browser dengan File , FileWriter , dan FileSystem API, meskipun ada peringatan untuk penggunaannya (lihat bagian dari jawaban ini).
Tetapi untuk menjawab pertanyaan Anda:
Menggunakan BakedGoods *
Menulis file:
Baca file:
Menggunakan File mentah, FileWriter, dan FileSystem API
Menulis file:
Baca file:
Apa yang Anda minta, kan? Mungkin tidak. Dua API terakhir:
Selain itu, spesifikasi FileSystem tidak mendefinisikan pedoman tentang bagaimana struktur direktori muncul di disk. Dalam browser berbasis Chromium misalnya, kotak pasir memiliki sistem file virtual (struktur direktori yang tidak perlu ada pada disk dalam bentuk yang sama ketika diakses dari dalam browser), di mana direktori dan file dibuat dengan API ditempatkan.
Jadi, meskipun Anda mungkin dapat menulis file ke sistem dengan API, mencari file tanpa API (well, tanpa FileSystem API) bisa menjadi urusan yang tidak sepele.
Jika Anda dapat mengatasi masalah / batasan ini, API ini adalah satu-satunya cara asli untuk melakukan apa yang Anda minta.
Jika Anda terbuka untuk solusi non-asli, Silverlight juga memungkinkan untuk file i / o dari kontes tab / window melalui IsolatedStorage . Namun, kode terkelola diperlukan untuk memanfaatkan fasilitas ini; solusi yang mengharuskan penulisan kode semacam itu berada di luar cakupan pertanyaan ini.
Tentu saja, solusi yang menggunakan kode terkelola pelengkap, meninggalkan satu dengan hanya Javascript untuk menulis, baik dalam lingkup pertanyaan ini;):
* BakedGoods adalah perpustakaan Javascript yang membuat antarmuka seragam yang dapat digunakan untuk melakukan operasi penyimpanan umum di semua fasilitas asli, dan beberapa fasilitas penyimpanan non-asli. Itu dikelola oleh orang ini di sini :)
sumber
Untuk Firefox:
Lihat https://developer.mozilla.org/en-US/docs/Code_snippets/File_I_O
Untuk yang lain, lihat aplikasi TiddlyWiki untuk melihat bagaimana melakukannya.
sumber
Dalam konteks browser, Javascript dapat MEMBACA file yang ditentukan pengguna. Lihat blog Eric Bidelman untuk detail tentang membaca file menggunakan File API. Namun, Javascript berbasis browser tidak dapat MENULIS sistem file komputer lokal tanpa menonaktifkan beberapa pengaturan keamanan karena dianggap sebagai ancaman keamanan bagi situs web mana pun untuk mengubah sistem file lokal Anda secara sewenang-wenang.
Mengatakan itu, ada beberapa cara untuk mengatasinya tergantung apa yang Anda coba lakukan:
Jika itu adalah situs Anda sendiri, Anda dapat menyematkan Java Applet di halaman web. Namun, pengunjung harus menginstal Java pada mesin lokal dan akan diberitahu tentang risiko keamanan. Pengunjung harus membiarkan applet dimuat. Java Applet seperti perangkat lunak yang dapat dieksekusi yang memiliki akses lengkap ke komputer lokal.
Chrome mendukung sistem file yang merupakan bagian sandbox dari sistem file lokal. Lihat halaman ini untuk detailnya. Ini memungkinkan Anda untuk menyimpan sementara hal-hal secara lokal. Namun, ini tidak didukung oleh browser lain.
Jika Anda tidak terbatas pada browser, Node.js memiliki antarmuka sistem file yang lengkap. Lihat di sini untuk dokumentasi sistem filenya . Perhatikan bahwa Node.js dapat berjalan tidak hanya di server, tetapi juga komputer klien termasuk windows. Pelari uji javascript Karma didasarkan pada Node.js. Jika Anda hanya ingin memprogram dalam javascript di komputer lokal, ini merupakan opsi.
sumber
Untuk membuat file coba
Buat direktori Anda di drive C karena windows memiliki keamanan terhadap penulisan dari web misalnya membuat folder bernama "tmp" di drive C.
sumber
Anda harus beralih ke Flash, Java atau Silverlight. Dalam kasus Silverlight, Anda akan melihat Penyimpanan Terpencil . Itu akan membuat Anda menulis ke file di taman bermain Anda sendiri pada disk pengguna. Ini tidak akan membiarkan Anda menulis di luar taman bermain Anda.
sumber
Anda tidak dapat melakukan ini dengan cara lintas browser apa pun. IE memang memiliki metode untuk mengaktifkan aplikasi "tepercaya" untuk menggunakan objek ActiveX untuk membaca / menulis file, tetapi hanya itu sayangnya.
Jika Anda ingin menyimpan informasi pengguna, kemungkinan besar Anda perlu menggunakan cookie.
sumber
Dari tes ReactJS, kode berikut berhasil menulis file:
File tersebut ditulis ke direktori yang berisi tes, jadi menulis ke file JSON yang sebenarnya '* .json' membuat perulangan!
sumber
Anda tidak dapat melakukan file i / o di sisi klien menggunakan javascript karena itu akan menjadi risiko keamanan. Anda harus membuatnya untuk mengunduh dan menjalankan exe, atau jika file ada di server Anda, gunakan AJAX dan bahasa sisi-server seperti PHP untuk melakukan i / o di sisi server
sumber
Menggunakan ekstensi JavaScript
Menggunakan halaman web dan objek Active X
sumber
Berikut ini adalah solusi tulis untuk chrome v52 + (pengguna masih harus memilih tujuan do ...)
sumber: StreamSaver.js
Paling cocok untuk menulis data besar yang dihasilkan di sisi klien.
Kalau tidak saya sarankan menggunakan FileSaver.js untuk menyimpan Blob / Files
sumber