Saya mencoba menulis pembaca file teks sederhana dengan membuat fungsi yang mengambil jalur file dan mengubah setiap baris teks menjadi array char, tetapi tidak berfungsi.
function readTextFile() {
var rawFile = new XMLHttpRequest();
rawFile.open("GET", "testing.txt", true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4) {
var allText = rawFile.responseText;
document.getElementById("textSection").innerHTML = allText;
}
}
rawFile.send();
}
Apa yang salah di sini?
Ini masih tidak berfungsi setelah mengubah kode sedikit dari revisi sebelumnya dan sekarang memberi saya XMLHttpRequest
pengecualian 101.
Saya sudah menguji ini pada Firefox dan itu berfungsi, tetapi di Google Chrome itu tidak akan berfungsi dan itu terus memberi saya Pengecualian 101. Bagaimana saya bisa membuat ini berfungsi tidak hanya pada Firefox, tetapi juga pada browser lain (terutama Chrome )?
status
dari0
serta200
.Jawaban:
Anda perlu memeriksa status 0 (seperti saat memuat file secara lokal
XMLHttpRequest
, Anda tidak mendapatkan status yang dikembalikan karena itu bukan dari aWebserver
)Dan tentukan
file://
dalam nama file Anda:sumber
file:///User/Danny/Desktop/javascriptWork/testing.txt
di bar url browser Anda dan lihat apakah Anda dapat melihat file ..true
. Jika ini adalahlocal
pencarian sederhana maka pengaturan async menjadifalse
ok, tetapionreadystatechange
tidak diperlukan saat itu disetel ke false. Berikut dokumentasinya: w3schools.com/ajax/ajax_xmlhttprequest_send.aspKunjungi Javascripture ! Dan buka bagian readAsText dan coba contohnya. Anda akan dapat mengetahui bagaimana fungsi readAsText dari FileReader bekerja.
sumber
Setelah pengenalan mengambil api di javascript, membaca konten file tidak bisa lebih sederhana.
membaca file teks
membaca file json
Pembaruan 30/07/2018 (penafian):
Pembaruan-2 (penafian):
sumber
Referer
". Saya kira ini berarti selamat tinggal untuk para pembalap yang baik. FileFileReaders dan HttpRequests (dan saya tidak akan sedikit pun merindukan mereka;)Fetch API cannot load file:///C:/Users/path/to/file/file.txt. URL scheme must be "http" or "https" for CORS request.
sumber
var reader = new FileReader();
melaluireader.readAsBinaryString(..)
- itu membaca isi file teks saya. Bersih, elegan, bekerja seperti pesona. Jawaban terbaik di utas ini untuk saya - terima kasih!Jon Perryman,
Ya, js dapat membaca file lokal (lihat FileReader ()) tetapi tidak secara otomatis: pengguna harus meneruskan file atau daftar file ke skrip dengan html
<input type=file>
.Kemudian dengan js dimungkinkan untuk memproses (contoh tampilan) file atau daftar file, beberapa properti mereka dan file atau konten file.
Yang tidak bisa dilakukan js karena alasan keamanan adalah mengakses secara otomatis (tanpa input pengguna) ke sistem file komputernya.
Untuk memungkinkan js untuk mengakses ke fs lokal secara otomatis diperlukan untuk membuat bukan file html dengan js di dalamnya tetapi dokumen hta.
File hta dapat berisi js atau vbs di dalamnya.
Tetapi hta executable hanya akan bekerja pada sistem windows.
Ini adalah perilaku browser standar.
Juga google chrome bekerja di fs api, info lebih lanjut di sini: http://www.html5rocks.com/en/tutorials/file/filesystem/
sumber
Mungkin Anda sudah mencobanya, ketik "false" sebagai berikut:
sumber
Coba buat dua fungsi:
sumber
contoh lain - pembaca saya dengan kelas FileReader
sumber
Solusi modern:
Ketika pengguna mengunggah file teks melalui input itu, itu akan dicatat ke konsol. Inilah demo jsbin yang berfungsi .
Ini versi yang lebih verbose:
Saat ini (Januari 2020) ini hanya berfungsi di Chrome dan Firefox, periksa di sini untuk kompatibilitas jika Anda membaca ini di masa depan: https://developer.mozilla.org/en-US/docs/Web/API/Blob/text
Pada browser lama, ini seharusnya berfungsi:
sumber
Menggunakan fungsi Ambil dan asinkron
sumber
Ini mungkin membantu,
sumber
Menambah beberapa jawaban di atas, solusi yang dimodifikasi ini bekerja untuk saya.
....
....
sumber
- Baca teks file dari javascript
- Teks log konsol dari file menggunakan javascript
- Google chrome dan mozilla firefox
dalam kasus saya, saya memiliki struktur file ini:
hasil console.log:
sumber
sumber
Dapatkan data file lokal di js (data.js) muat:
file data.js seperti:
dynamic unixTime queryString mencegah cache.
AJ bekerja di web http: //.
sumber
Panggilan AJAX lokal di Chrome tidak didukung karena kebijakan asal yang sama.
Pesan kesalahan pada chrome adalah seperti ini: "Permintaan lintas asal tidak didukung untuk skema protokol: http, data, chrome, ekstensi chrome, https."
Ini berarti bahwa chrome membuat disk virtual untuk setiap domain untuk menjaga file yang dilayani oleh domain menggunakan protokol http / https. Setiap akses ke file di luar disk virtual ini dibatasi berdasarkan kebijakan asal yang sama. Permintaan dan tanggapan AJAX terjadi pada http / https, oleh karena itu tidak akan berfungsi untuk file lokal.
Firefox tidak memberikan batasan seperti itu, karena itu kode Anda akan bekerja dengan senang hati di Firefox. Namun ada solusi untuk chrome juga: lihat di sini .
sumber
Anda dapat mengimpor perpustakaan saya:
kemudian, fungsi
fetchfile(path)
akan mengembalikan file yang diunggahHarap perhatikan: di Google Chrome jika kode HTML lokal, kesalahan akan muncul, tetapi menyimpan kode HTML dan file online kemudian menjalankan file HTML online berfungsi.
sumber
Untuk membaca teks file lokal melalui
JavaScript
menggunakan chrome, browser chrome harus dijalankan dengan argumen--allow-file-access-from-files
untuk memungkinkan JavaScript untuk mengakses file lokal, maka Anda dapat membacanya menggunakanXmlHttpRequest
seperti berikut:sumber
Bagaimana cara membaca file lokal?
Dengan menggunakan ini, Anda akan memuat file dengan loadText () lalu JS akan secara asinkron menunggu sampai file tersebut dibaca dan dimuat setelah itu akan memeriksa fungsi readText () yang memungkinkan Anda untuk melanjutkan dengan logika JS normal Anda (Anda juga dapat menulis try catch blokir pada fungsi loadText () dalam hal terjadi kesalahan) tetapi untuk contoh ini saya menyimpannya seminimal mungkin.
sumber
Saya tahu, saya terlambat di pesta ini. Biarkan saya menunjukkan kepada Anda apa yang saya dapatkan.
Ini adalah pembacaan file teks sederhana
Saya harap ini membantu.
sumber