Mit Javascript lokal lokale Dateien öffnen?

2 Antworten

Das kann JavaScript nicht. Das ist auch so gewollt.

Sonst könnte ich die in einer HTML-Seite JavaScript-Code geben, die deine privaten Dateien öffnet und mir den Inhalt per AJAX übermittelt.

Das wäre ein ein Einfallstor für jedermann.

Wenn du auf lokale Dateien zugreifen willst, dann muss das der HTTP-Server machen, wenn er bei dir ist. Das geht beispielsweise mit AJAX als Transport-Art und PHP als Skriptsprache. PHP kann dann da, wo die HTML-Seite steht (auf dem Computer), Dateien öffnen.

Du müsstest dir lokal einen Webserver installieren (z.B. Apache, oder IIS), über den du die HTML-Datei ausführen lässt. Dann kannst du via AJAX-Request auf eine Datei zugreifen.

Beispiel:

<!DOCTYPE html>
<title>Open local file with JS</title>
<script>

  function readTextFile(filename) {
    var request = new XMLHttpRequest();
    request.open("GET", filename);
    request.onreadystatechange = function() {
      if (request.readyState !== 4) {
        return;
      }

      if (request.status === 200 || request.status == 0) {
        document.write(request.responseText);
      }
    }

    request.send(null);
  }

  readTextFile("someFile.txt");
</script>

In NodeJS könntest du das File System-Modul verwenden, um auf das Dateisystem zuzugreifen, auf dem die Backend-Anwendung läuft.