2012-12-21 4 views
5

Mögliche Duplizieren:
Force download of ‘data:text/plain’ URL
Create a downloadable link from a vriable in javascriptWie erstellen Sie Dateien mit JavaScript?

Ich habe Plugins gesehen, erstellen/generieren Dateien (.txt, .pdf, .vcard) und ich bin nicht ganz sicher, wie es gemacht wird. Werden diese durch Ajax gemacht? Oder gibt es ein Objekt/eine Methode, die ich vermisse?

+0

Ist es möglich, dies nur mit der Client-Seite zu tun? – Dandy

+0

Nur mit FileSystem API, aber ich bin mir nicht sicher, das ist, was Sie suchen ... Haben Sie eine Website mit einem Beispiel? –

+2

Um Dateien auf dem Computer des Benutzers zu erstellen, erstellen Sie in der Regel einen Binärstring mit den Dateidaten und leiten die Seite dann an eine ['data:' URL] (https://en.wikipedia.org/wiki/Data_URI_scheme) um. mit den base64-kodierten Dateidaten, damit der Browser sie herunterladen kann. – apsillers

Antwort

1

Html5 unterstützt den Zugriff auf das Dateisystem. Im Folgenden Link hat ein gutes Beispiel:

http://www.html5rocks.com/en/tutorials/file/filesystem/

+0

Schön! Das ist sehr hilfreich, aber ich bin gespannt, wie Leute Dateien generieren konnten, bevor HTML5 verfügbar war. Auch, da dies noch nicht allgemein unterstützt wird. – Dandy

+0

Generieren von Datei * Daten * und Aufforderung zur Erstellung einer * tatsächlichen Datei * sind zwei separate Schritte. Richten Sie Ihren Browser auf 'data: text/x-plain, helloworldfoobar' und Sie werden sehen, dass es ziemlich einfach ist, einen Download zu verlangen, sobald Sie Ihre Dateidaten erstellt haben. Das Generieren von Dateidaten ist in etwa das Gleiche wie das Erzeugen von Daten in jeder Sprache: Verschieben Sie einige Bits und Bytes, bis sie wie gewünscht aussehen. – apsillers

+0

Auf einer Microsoft-Maschine, zum Beispiel über VBScript, können Sie Folgendes tun: Setzen Sie fso = createobject ("scripting.filesystemobject") ... das nur auf ie arbeitete. Ich denke, es gab eine ähnliche Möglichkeit, dies in Javascript zu tun. – malkassem

0

ist die Spezifikation für die FS API. Leider ist support dafür sehr hell. Wenn Sie es jedoch in mobilen Apps verwenden möchten, hat PhoneGap implement it.

Wenn Sie ein GreaseMonkey-Skript schreiben, haben Sie GM_xmlhttpRequest, das nicht dieselbe Ursprungsrichtlinie hat.

+0

Danke für das Teilen! – Dandy

Verwandte Themen