2017-05-03 4 views
-1

Javascript:Javascript lesen Zeile für Zeile Textdatei

<script src="../plugin/jquery-3.1.0.min.js"></script> 
<script> 
    $(document).ready(function(){ 
     $('#test').click(function(){ 
      var txtFile = '../fileupload/mail.txt'; 
      var file = new File(txtFile); 
      file.open("r"); 
      while (!file.eof) { 
       alert(file.readln()); 
      } 
      file.close(); 
     }); 
    }); 
</script> 

HTML:

<button type="submit" class="btn btn-default" id="test">Check</button> 

Wenn i-Taste klicken überprüfen, werden Javascript-Datei Zeile für Zeile lesen. Aber es läuft nicht :(. Bitte mir helfen fix

+0

Wissen Sie, ob das Klickereignis ausgelöst wird? d. H: haben Sie eine 'console.log' in die Klickfunktion –

+0

gesetzt. Siehe https://developer.mozilla.org/en-US/docs/Web/API/File/File –

Antwort

1

Sie keine Dateien lesen kann, die Art und Weise von Browser gehostete JavaScript. Die File constructor nicht akzeptiert nur ein Argument, und File objects haben keine open, readln oder close Methoden noch eine eof Eigenschaft. Was auch immer Bezug Sie betrachten, ist es nicht für den Browser-basierten File Objekt.

Wenn Sie dies von einer richtigen Webseite laufen lassen, können Sie Ressourcen von Ihrem eigenen Server lesen über Ajax (XMLHttpRequest oder fetch).

Wenn Sie Wenn Sie versuchen, eine lokale Datei zu lesen, müssen Sie die Benutzer identifizieren Sie die Datei (Sie können es nicht für sie tun) über eine input type="file", und verwenden Sie dann die File API, um den Inhalt der Datei zu lesen. This answer hat ein Beispiel dafür (sowohl im Text als auch im Binärformat).

0

Wenn Sie schauen, erstellen und dann eine Datei herunterladen i, dass Sie bei file saver

var blob = new Blob(["r"], {type: "text/plain;charset=utf-8"}); 
saveAs(blob, "mail.txt"); 

sonst eine Datei, wenn Sie schauen, um laden einen Blick vorschlagen würde ich ein input type="file" id="file-test" und dann FileReader verwenden möchte hinzufügen .

$('#file-test').change(function(e) { 
    var doc = event.target.files.document; 
    var reader = new FileReader(); 
    reader.onload = function(event) { 
    // Then you can do something with the result 
    console.log(event.target.result) 
    }; 

    reader.readAsText(doc); 
}