Ich habe versucht, die Datei mit zu öffnen
window.open("file:///D:/Hello.txt");
Der Browser erlaubt das Öffnen einer lokalen Datei auf diese Weise möglicherweise aus Sicherheitsgründen nicht. Ich möchte die Daten der Datei auf der Clientseite verwenden. Wie kann ich lokale Dateien in JavaScript lesen?
javascript
Joval
quelle
quelle
null
für jedesonClick
Ereignis sollte den Trick tun, siehe: stackoverflow.com/a/12102992/63011FileReader
, aber ein Kommentar zu demdisplayContents
obeninnerHTML
Gesagten : Beachten Sie, dass eine solche Einstellung mit nicht vertrauenswürdigen Inhalten eine Sicherheitslücke darstellen kann. (Um dies selbst zu sehen, erstellen Sie einbad.txt
<img src="/nonexistent" onerror="alert(1);">
innerHTML
durchtextContent
. Vielen Dank für Ihren Kommentar.DOMContentLoaded
Ereignis auch dafür verwenden.Mit der HTML5-Funktion "fileReader" können Sie zwar lokale Dateien verarbeiten. Diese MÜSSEN jedoch vom Benutzer ausgewählt werden. Sie können nicht auf der Festplatte des Benutzers nach Dateien suchen.
Ich verwende dies derzeit mit Entwicklungsversionen von Chrome (6.x). Ich weiß nicht, welche anderen Browser dies unterstützen.
quelle
Da ich kein Leben habe und diese 4 Reputationspunkte möchte, damit ich meine Liebe gegenüber (positiven Antworten von) Menschen zeigen kann, die tatsächlich gut im Codieren sind, habe ich meine Anpassung von Paolo Morettis Code geteilt. Verwenden Sie einfach die
openFile(
Funktion, die mit dem Dateiinhalt als erstem Parameter ausgeführt werden soll)
.quelle
clickElem()
, einfach anrufen könnenfileInput.click()
. (zumindest in der neuesten Version von Chrome)Versuchen
Der Benutzer muss jedoch Maßnahmen ergreifen, um die Datei auszuwählen
Code-Snippet anzeigen
quelle
Die xmlhttp-Anforderungsmethode ist für die Dateien auf der lokalen Festplatte nicht gültig, da die Browsersicherheit dies nicht zulässt. Sie können die Browsersicherheit jedoch überschreiben, indem Sie eine Verknüpfung-> Rechtsklick-> Eigenschaften im Zielbrowser "..." erstellen location path.exe "append --allow-file-access-from-files.Dies wird auf Chrome getestet. Es sollte jedoch darauf geachtet werden, dass alle Browserfenster geschlossen und der Code über den über diese Verknüpfung geöffneten Browser ausgeführt wird.
quelle
Das kannst du nicht. Neue Browser wie Firefox, Safari usw. blockieren das Dateiprotokoll. Es funktioniert nur mit alten Browsern.
Sie müssen die gewünschten Dateien hochladen.
quelle
Javascript kann in neuen Browsern normalerweise nicht auf lokale Dateien zugreifen, aber das XMLHttpRequest-Objekt kann zum Lesen von Dateien verwendet werden. Es ist also tatsächlich Ajax (und nicht Javascript), das die Datei liest.
Wenn Sie die Datei lesen möchten
abc.txt
, können Sie den Code wie folgt schreiben:txt
Enthält jetzt den Inhalt der Datei abc.txt.quelle