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
Freigeben: 2024-11-24 22:32:15
Original
930 Leute haben es durchsucht

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;
    }
}
Nach dem Login kopieren

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 :(";
    }
}
Nach dem Login kopieren

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";
    }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage