2016-05-24 20 views
0

Arbeiten in Chrome, Laden eines lokalen html oder JS-Datei.Wie lade ich den Inhalt einer lokalen Textdatei mit Hilfe von Javascript und HTML 5 nach Namen?

Ich habe viele Beispiele gefunden, wie man eine Datei lädt, die mit der Eingabe Datei auswählen ausgewählt wird.

jedoch nicht herausfinden, wie es einen Dateinamen gegeben zu tun, ohne die Datei-Eingabe Wählen Sie mit.

Der Befehl Datei auswählen gibt ein File-Objekt zurück.

Wie erstellt man das Dateiobjekt ohne die Eingabe Datei auswählen?

Vom File API:

new File(
    Array parts, 
    String filename, 
    BlobPropertyBag properties 
); 

aber nicht herausfinden, was die Teile und Eigenschaften wären.

Edit: Anwendungsfall:

I Code-Coverage-Ergebnisse haben als Teil einer Testsuite erzeugt. Es wird als JSON gespeichert (was einfach zu lesen ist), aber ich muss es mit dem Quellcode anzeigen.

Die Funktion besteht also darin, den Quellcode und die JSON-Daten zu laden und sie zusammen auf einer Webseite mit HTML und Javascript darzustellen.

Die Datei wird vom Browser aus geöffnet und befindet sich auf dem lokalen Computer. Es gibt keinen Server.

+0

Vielleicht brauchen Sie die XMLHttpRequest? Es ist ein Tool zum Laden von Dateien über das HTTP-Protokoll. –

+0

Wie ich in der Frage sagte, ist dies nicht für eine HTTP-Anfrage. Dies dient zum Lesen einer lokalen Datei ohne einen Server. –

+0

Websites können nicht ohne Erlaubnis auf die Festplatte eines Besuchers zugreifen. Wenn sie könnten, wäre jede Website in der Lage, private Dateien zu lesen, Viren zu installieren oder einfach die Festplatte zu löschen. –

Antwort

6

Der Browser kann keine beliebigen Dateien namentlich von Ihrem Dateisystem ohne spezielle Erweiterungen oder andere Spielereien laden. Dies ist eine Sicherheitsrichtlinie, die verhindert, dass zufällige Websites Dateien von Ihrer Festplatte lesen, während Sie im Internet surfen.

Wenn du unten bist etwas Besonderes, wie zu tun, wenn Sie eine Chrome-App schreiben wollen, können Sie den Zugriff auf einige schöne APIs erhalten für das Dateisystem zugreifen: https://developer.chrome.com/apps/fileSystem

+0

Obwohl ich das schon einmal gesehen habe, macht es nicht viel Sinn, denn: 1. Sie können ** jede lokale Datei mit der Eingabe Datei wählen laden. 2. HTML-Dateien, die aus dem lokalen Dateisystem geladen werden, haben normalerweise andere Berechtigungen als die von Remote-Hosts bereitgestellten. –

+2

@BSeven Sicher, Sie können jede Datei laden, aber * erst, nachdem der Benutzer sie ausgewählt hat *. Das gibt Sicherheit. – 4castle

0

Aus Sicherheitsgründen alle Browser nicht Unterstütze vordefinierte Werte in Dateifeldern, so dass die Antwort nicht möglich ist.

2

Die File Konstruktor keine Datei von der Festplatte lesen, aber rater eine virtuelle Datei machen, bedenken Sie:

var file = new File(["some", "content"], "/tmp/my-name.txt"); 
var reader = new FileReader(); 
reader.onload = function() { 
    console.log(reader.result); // somecontent 
}; 

Keine Datei wird auf der Kunden-Maschine gelesen oder gespeichert werden.

Wenn Sie über das Erstellen von Dateien in sprechen, dann sollten Sie sich fs ansehen.

+0

Ich glaube nicht, dass es node.js ist, denn die Frage begann mit "Arbeiten in Chrome" – 4castle

+0

@ 4castle gültigen Punkt. Ich habe es gerade erwähnt, wenn OP [tag: v8] und [tag: google-chrome] durcheinander gebracht hat. – andlrc