2012-06-15 13 views
9

Hallo Ich versuche, in einer .json-Datei von meinem lokalen Rechner zu lesen. es wird nicht in der Code gelesen ich verwende ist:Wie lese ich eine Textdatei auf meiner lokalen Festplatte in eine Variable in JavaScript

jQuery.getJSON('../json/test.json') 
    .done(function(data) { 
     var test = data; 
     alert("sucsess"); 
    }) 
    .fail(function(data){ 
    alert("failed"); 

}); 

Alles, was ich von diesem bin immer ausgefallen ist, was mache ich falsch. Ich gehe damit keinen Server durch.

+2

Wenn Ihr Webserver nicht auf dem lokalen Computer ist, das wird nicht funktionieren. – OptimusCrime

+0

Welchen Fehlercode erhalten Sie? – Bergi

Antwort

2

Sie keine Dateien auf Ihrem lokalen Rechner via JavaScript aus Sicherheitsgründen etc Acess kann ....

JavaScript und das DOM bieten das Potenzial für böswillige Autoren Skripte liefern auf einem Client ausgeführt werden Computer über das Internet. Browser Autoren enthalten dieses Risiko mit zwei Einschränkungen. Zuerst führen Skripte in einer Sandbox aus, in der sie nur webbezogene Aktionen durchführen können, nicht allgemeine Programmieraufgaben wie das Erstellen von Dateien.

Aber ich habe diese Website gefunden, aber gab nie einen Versuch, vielleicht hilft Ihnen: Reading local files in JavaScript

Edit: Wenn Sie nie Ihren Code auf einem Webserver laufen gehender und es nur ausführen auf Ihr lokales System (Aufruf index.html im Browser wie: C: /Users/user/index.html Sie könnten darauf zugreifen, aber wenn diese Website jemals online gehen sollte, was ich denke, das wird nicht funktionieren

5

Es tut uns leid, aber wenn Sie die Seite von einem lokalen Laufwerk (Adressleiste wird das Formular Datei: /// Pfad zu Ihrer Seite) die n Sie können eine Datei von der Festplatte lesen, aber wenn Sie ein Skript vom Webserver ausführen (http://......), können Sie die Datei nicht vom lokalen Laufwerk lesen. Es schützt Sie davor, Informationen vom Benutzerlaufwerk zu stehlen. Sie müssen möglicherweise eine Datei hochladen, um sie zu lesen

EDIT: Ich muss es zurücknehmen. Neuer Browser ermöglicht es Ihnen, die Datei basierend auf Benutzerereignissen zu lesen. Wenn Benutzer auf Dateieingabe klicken und eine Datei öffnen, dann können Sie es lesen

0

Wenn Sie über Datei auf lokalen (Client) -System und nicht Server sprechen, dann ist das mit einfachem Javascript nicht möglich. Sie können nicht auf lokale Dateisystemressourcen zugreifen.

0

jQuery.getJSON Aufruf ist asynchron, so dass Sie Ihre Prüfgröße nur innerhalb Funktion (Daten) sehen {...}

6

prüft diese fiddle

<title>reading Text files</title> 
<body> 
    <input type="file" id="files" name="files[]" multiple /> 
    <output id="list"></output> 
    <script> 
     function handleFileSelect(evt) { 
     var files = evt.target.files; // FileList object 

     // Loop through the FileList 
     for (var i = 0, f; f = files[i]; i++) { 

     var reader = new FileReader(); 

     // Closure to capture the file information. 
     reader.onload = (function(theFile) { 
      return function(e) { 
       // Print the contents of the file 
       var span = document.createElement('span');      
       span.innerHTML = ['<p>',e.target.result,'</p>'].join(''); 
       document.getElementById('list').insertBefore(span, null); 
      }; 
     })(f); 

     // Read in the file 
     //reader.readAsDataText(f,UTF-8); 
     //reader.readAsDataURL(f); 

     reader.readAsText(f); 
     } 
    } 
    document.getElementById('files').addEventListener('change', handleFileSelect, false); 
    </script> 
</body> 
Verwandte Themen