Ich versuche, eine Nur-Skript-Lösung zum Lesen des Inhalts einer Datei auf einem Client-Computer über einen Browser bereitzustellen.Lesen von Dateiinhalten auf der Client-Seite in Javascript in verschiedenen Browsern
Ich habe eine Lösung, die mit Firefox und Internet Explorer funktioniert. Es ist nicht schön, aber ich bin nur die Dinge im Moment versuchen:
function getFileContents() {
var fileForUpload = document.forms[0].fileForUpload;
var fileName = fileForUpload.value;
if (fileForUpload.files) {
var fileContents = fileForUpload.files.item(0).getAsBinary();
document.forms[0].fileContents.innerHTML = fileContents;
} else {
// try the IE method
var fileContents = ieReadFile(fileName);
document.forms[0].fileContents.innerHTML = fileContents;
}
}
function ieReadFile(filename)
{
try
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.OpenTextFile(filename, 1);
var contents = fh.ReadAll();
fh.Close();
return contents;
}
catch (Exception)
{
return "Cannot open file :(";
}
}
Ich kann getFileContents()
nennen, und es wird den Inhalt in den fileContents
Textbereich schreiben.
Gibt es eine Möglichkeit, dies in anderen Browsern zu tun?
Ich bin im Moment am meisten mit Safari und Chrome beschäftigt, aber ich bin offen für Vorschläge für jeden anderen Browser.
Edit: Als Antwort auf die Frage: „Warum wollen Sie das tun wollen?“:
Grundsätzlich möchte ich den Inhalt der Datei zusammen mit einem Einmalpasswort auf der Client-Seite Hash also kann ich diese Information als Bestätigung zurücksenden.
nicht, dass ich eine Antwort, sondern nur aus Gründen der Klarheit willen, tun Sie den Speicherort der Datei wissen müssen? Wenn nicht, muss der Speicherort der Datei aus einer Dateieingabe gelesen werden oder kann es eine Textbox/Textbereich/was auch immer sein? –
Gute Frage. Nein, mir ist es egal, woher die Datei kommt, nur ihr Inhalt. Die Verwendung einer Dateieingabe erscheint mir jedoch sinnvoll, da es sich um nativen HTML-Code handelt - es gibt noch eine Sache, die ich tun muss. – Damovisa
warum willst du das überhaupt machen? der Server soll das tun. – geowa4