2016-04-15 28 views
2

Ich möchte automatisch eine lokale Textdatei lesen, wenn meine Webseite auf meinem Computer geöffnet wird. Wie kann ich das machen? Ich habe den folgenden Code von einer der Lösungen verwendet, die auf dieser Site beantwortet wurden und es heißt "Access is denied".Wie lese ich eine lokale Textdatei?

<script type="text/javascript"> 
var fileDisplayArea = document.getElementById('fileText'); //to show output 
function readTextFile(file) 
{ 
    var rawFile = new XMLHttpRequest(); 
    rawFile.open("GET", file, false); 
    rawFile.onreadystatechange = function() 
    { 
     if(rawFile.readyState === 4) 
     { 
      if(rawFile.status === 200 || rawFile.status == 0) 
      { 
       var allText = rawFile.responseText; 
       fileDisplayArea.innerText = allText 
      } 
     } 
    } 
    rawFile.send(null); 
} 

readTextFile("file:///Location/fileToBeRead.txt"); 
</script> 

Gibt es eine andere Lösung für dieses Problem?

+3

Führen Sie es von 'localhost' ... Verwenden Sie nicht' file: // 'Pfad .. – Rayon

+0

Es funktionierte auf meinem Computer. Aber eigentlich möchte ich es auf meinem Android verwenden und die gelesenen Daten im Browser darstellen. Die Textdatei enthält einige Messwerte des Sensors. –

+0

Was ist, wenn Sie eine Dateieingabe wie hier verwendet haben: http://oss.sheetjs.com/js-xlsx/? –

Antwort

4

Sie können die Datei nicht von einer lokalen Person lesen.

Sie können nur Dateien aus der Domäne lesen, dass Ihre Website läuft (oder bei Verwendung von JSONP Vergangenheit XSS Regeln zu bekommen)

0

Sie sollten auf einem Client-Computer keine Dateien lesen. Es ist ein Sicherheitsproblem und daher nicht erlaubt (Zugriff verweigert). Wenn Sie Daten auf dem Client-Rechner speichern möchten, verwenden Sie lieber Cookies oder verwenden Sie eine HTML-Sitzung oder einen lokalen Speicher.

+0

Der letzte Teil Ihrer Antwort sieht eher wie ein Kommentar aus. Überlege, ob du das bearbeiten willst. – Neal

0

Aus Sicherheitsgründen gibt es nativ keine Methode zum Lesen von Systemdateien (von URL ... file:///...).

0

Möglicherweise können Sie dazu die Funktion Local Storage von HTML5 verwenden.

Verwandte Themen