Heim >Web-Frontend >js-Tutorial >Wie kann JavaScript lokale Dateiinhalte in verschiedenen Browsern lesen?

Wie kann JavaScript lokale Dateiinhalte in verschiedenen Browsern lesen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-24 22:32:15889Durchsuche

How Can JavaScript Read Local File Contents in Different Browsers?

Lesen von Dateiinhalten auf der Clientseite in JavaScript in verschiedenen Browsern

Bei dem Versuch, Dateiinhalte von einem Clientcomputer mithilfe eines Browsers zu lesen, ein reines Skript Die Lösung wurde für Firefox und Internet Explorer entwickelt. Die Lösung nutzt die Datei-API für Firefox und ein ActiveXObject für Internet Explorer.

Datei-API für 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 für 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 :(";
    }
}

Cross-Browser Support

Es ist jedoch keine Möglichkeit bekannt, diese Aufgabe in anderen Browsern wie Safari und Chrome mit den oben genannten Methoden auszuführen. Die Datei-API, wie sie in diesen Browsern implementiert ist, bietet nur Zugriff auf Dateinamen und Dateigröße und nicht die Möglichkeit, Inhalte zu lesen.

Datei-API-Update

Die Datei Die API wurde seitdem standardisiert und in den meisten modernen Browsern implementiert, einschließlich IE 10 und höher. Diese API unterstützt das asynchrone Lesen von Dateien, die Verarbeitung binärer Dateien und die Dekodierung von Textkodierungen.

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- und HTML 5-Vorschlag

Alternativ kann man, falls gewünscht, einreichen einen Patch oder schlagen Sie die Mozilla-API zur Aufnahme in HTML 5 vor, was die Wahrscheinlichkeit einer zukünftigen browserübergreifenden Kompatibilität erhöht.

Das obige ist der detaillierte Inhalt vonWie kann JavaScript lokale Dateiinhalte in verschiedenen Browsern lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn