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!