Rumah >hujung hadapan web >tutorial js >Bagaimanakah JavaScript Boleh Membaca Kandungan Fail Setempat dalam Pelayar Berbeza?

Bagaimanakah JavaScript Boleh Membaca Kandungan Fail Setempat dalam Pelayar Berbeza?

Linda Hamilton
Linda Hamiltonasal
2024-11-24 22:32:15932semak imbas

How Can JavaScript Read Local File Contents in Different Browsers?

Membaca Kandungan Fail di Sebelah Pelanggan dalam JavaScript dalam Pelbagai Pelayar

Dalam percubaan untuk membaca kandungan fail daripada mesin klien menggunakan penyemak imbas, skrip sahaja penyelesaian telah dibangunkan untuk Firefox dan Internet Explorer. Penyelesaian itu memanfaatkan API Fail untuk Firefox dan ActiveXObject untuk Internet Explorer.

API Fail untuk Firefox

function getFileContents() {
    var fileForUpload = document.forms[0].fileForUpload;
    var fileName = fileForUpload.value;

    if (fileForUpload.files) {
        var fileContents = fileForUpload.files.item(0).getAsBinary();
        document.forms[0].fileContents.innerHTML = fileContents;
    }
}

ActiveXObject untuk Internet Explorer

function ieReadFile(filename) 
{
    try
    {
        var fso  = new ActiveXObject("Scripting.FileSystemObject"); 
        var fh = fso.OpenTextFile(filename, 1); 
        var contents = fh.ReadAll(); 
        fh.Close();
        return contents;
    }
    catch (Exception)
    {
        return "Cannot open file :(";
    }
}

Pelayar Silang Sokongan

Walau bagaimanapun, tiada cara yang diketahui untuk melaksanakan tugas ini dalam penyemak imbas lain, seperti Safari dan Chrome, menggunakan kaedah di atas. API Fail, seperti yang dilaksanakan dalam penyemak imbas ini, hanya menyediakan akses kepada nama fail dan saiz fail, tidak mempunyai keupayaan untuk membaca kandungan.

Kemas Kini API Fail

Fail API telah diseragamkan dan dilaksanakan dalam kebanyakan penyemak imbas moden, termasuk IE 10 dan seterusnya. API ini menyokong pembacaan fail tak segerak, pengendalian fail binari dan penyahkodan pengekodan teks.

var file = document.getElementById("fileForUpload").files[0];
if (file) {
    var reader = new FileReader();
    reader.readAsText(file, "UTF-8");
    reader.onload = function (evt) {
        document.getElementById("fileContents").innerHTML = evt.target.result;
    }
    reader.onerror = function (evt) {
        document.getElementById("fileContents").innerHTML = "error reading file";
    }
}

WebKit dan HTML 5 Cadangan

Sebagai alternatif, jika mahu, seseorang boleh menyerahkan tampalan atau cadangkan Mozilla API untuk dimasukkan dalam HTML 5, meningkatkan kemungkinan keserasian merentas pelayar dalam masa depan.

Atas ialah kandungan terperinci Bagaimanakah JavaScript Boleh Membaca Kandungan Fail Setempat dalam Pelayar Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn