Lesen einer text-Datei mithilfe von Javascript
Sollte der folgende code liest den Inhalt einer text-Datei im aktuellen Verzeichnis nach dem laden, und zeigt Sie auf der html-Seite. Ich habe versucht, das ändern von meinem selbst. Aber es gibt nicht eine Ausgabe. Gibt es ein einfacher Weg, um dieses Ergebnis mit einer anderen Methode? oder bitte helfen, herauszufinden, was ist falsch an diesem code?
<html>
<head>
<meta http-equiv='Content-type' content='text/html;charset=UTF-8' >
<script>
function startRead()
{
//obtain input element through DOM
var file = document.getElementById("\\file.txt").files[0]
if(file)
{
getAsText(file);
}
}
function getAsText(readFile)
{
var reader;
try
{
reader = new FileReader();
}catch(e)
{
document.getElementById('output').innerHTML =
"Error: seems File API is not supported on your browser";
return;
}
//Read file into memory as UTF-8
reader.readAsText(readFile, "UTF-8");
//Handle progress, success, and errors
reader.onload = loaded;
reader.onerror = errorHandler;
}
function loaded(evt)
{
//Obtain the read file data
var fileString = evt.target.result;
document.getElementById('output').innerHTML = fileString;
}
function errorHandler(evt)
{
if(evt.target.error.code == evt.target.error.NOT_READABLE_ERR)
{
//The file could not be read
document.getElementById('output').innerHTML = "Error reading file..."
}
}
//Start reading file on load
window.addEventListener("load", startRead() { }, false);
</script>
</head>
<body>
<pre>
<code id="output">
</code>
</pre>
</body>
</html>
Da unten ist der code, die ich geändert, um den oben genannten code. Meine Absicht war. Als ich öffnen Sie die html-Datei, die es Lesen würden, die text-Datei im aktuellen Verzeichnis und den Inhalt anzuzeigen.
<html>
<head>
<meta http-equiv='Content-type' content='text/html;charset=UTF-8' >
<script>
function startRead()
{
//obtain input element through DOM
var file = document.getElementById("file").files[0];
if(file)
{
getAsText(file);
}
}
function getAsText(readFile)
{
var reader;
try
{
reader = new FileReader();
}catch(e)
{
document.getElementById('output').innerHTML =
"Error: seems File API is not supported on your browser";
return;
}
//Read file into memory as UTF-8
reader.readAsText(readFile, "UTF-8");
//Handle progress, success, and errors
reader.onload = loaded;
reader.onerror = errorHandler;
}
function loaded(evt)
{
//Obtain the read file data
var fileString = evt.target.result;
document.getElementById('output').innerHTML = fileString;
}
function errorHandler(evt)
{
if(evt.target.error.code == evt.target.error.NOT_READABLE_ERR)
{
//The file could not be read
document.getElementById('output').innerHTML = "Error reading file..."
}
}
</script>
</head>
<body>
<input id="file" type="file" multiple onchange="startRead()">
<pre>
<code id="output">
</code>
</pre>
</body>
</html>
- Java hat nichts mit JavaScript
document.getElementById("\\file.txt")
existiert nicht in Ihrem Dokument, so erhalten Sie eine Ausnahme aus, wenn Sie versuchen zu Lesen. Schauen Sie in Ihrem JavaScript-Konsole.- Dies tut
document.getElementById("\\file.txt").files[0]
erste Zeile jedes element. Ich denke nicht so. Was versuchst hier? "load", startRead() { }, false
ist ein syntax-Fehler, so dass Sie erhalten eine Ausnahme, wenn Sie versuchen, kompilieren, der code. Schauen Sie in Ihrem JavaScript-Konsole.- Ich habe das original-code. Das ist das, was ich geändert um diesen code zu erhalten. Meine Bedingung, die ich erwähnt habe, zusammen mit ihm. Was ich brauche, ist für das Skript zu Lesen die text-Datei auf laden und anzeigen der text-Inhalt.
- Funktioniert das code-snippet unten arbeiten, im Gegensatz zu dem oben genannten?
- ja man unten woks völlig in Ordnung. Die, die ich habe versucht, ändern für meine Anforderung ist der eine oben, das funktioniert nicht.
- Es sollte funktionieren, wenn Sie möchten, ersetzen Sie
window.addEventListener("load", startRead() { }, false);
durchwindow.addEventListener("load", startRead);
, wenn Sie möchten, schließen Sie die Datei-input-Feld mit der IDfile
und verwendetdocument.getElementById('file')
statt ...\file
.... - Ich habe diese zu ändern. Es ist nicht geben eine Leistung. Ich denke, weil Sie nicht wissen, welche Datei zum Lesen aus, im nicht sicher. Ist es Weg angeben, oder codieren Sie einen Dateinamen oder Pfad, es wird also nur gelesen, dass.
- Nein, das ist nicht möglich. Die Dateien sind zugänglich über die
files
Eigenschaft nur. Sie sollten zumindest einFileList
- Objekt beim setzenconsole.log(file.files[0])
imstartRead
- Funktion und ein Blick in die browser-Konsole. Ist es wirklichgetElementById('file')
und<input id="file" type="file"/>
? - ist es zu schwierig, code der id="Datei" parameter so . Wenn ich laden Sie die html-Datei. Die text-Datei wird automatisch gelesen.?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen dieses Schnipsel habe ich gerade versucht und es funktioniert :)!
Live-Demo (Mit Input-Datei)
JS:
HTML:
Ohne Input-Datei
Funktion
Und um es zu testen
Bemerken: ich habe es versucht, aber es funktioniert nur in firefox
HTML:
dieser code funktioniert
JS:
HTML: