2012-12-21 18 views
5

Powiel możliwe:
Force download of ‘data:text/plain’ URL
Create a downloadable link from a vriable in javascriptJak tworzyć pliki z JavaScript?

Widziałem wtyczek, które mogą tworzyć/generowanie plików (.txt, .pdf, .vcard) i nie jestem do końca pewien, jak to jest zrobione. Czy odbywa się to za pośrednictwem Ajax? Czy istnieje obiekt/metoda, której mi brakuje?

+0

Czy można to zrobić tylko po stronie klienta? – Dandy

+0

Tylko z FileSystem API, ale nie mam pewności, że to, czego szukasz ... Czy masz stronę z przykładem? –

+2

Aby utworzyć pliki na komputerze użytkownika, zwykle tworzy się ciąg binarny z danymi pliku, a następnie przekierowuję stronę na adres URL '' data: '(https://en.wikipedia.org/wiki/Data_URI_scheme) z danymi pliku zakodowanymi w base64, aby przeglądarka mogła je pobrać. – apsillers

Odpowiedz

1

Html5 obsługuje dostęp do systemu plików. Poniżej odnośnik ma dobry przykład:

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

+0

Nice! Jest to bardzo pomocne, ale jestem ciekawa, jak ludzie byli w stanie wygenerować pliki, zanim HTML5 był dostępny. Ponadto, ponieważ nie jest to jeszcze szeroko obsługiwane. – Dandy

+0

Generowanie pliku * dane * i monitowanie o utworzenie * rzeczywistego pliku * to dwa osobne kroki. Skieruj przeglądarkę na 'dane: text/x-plain, helloworldfoobar', a zobaczysz, że po pobraniu danych możesz łatwo poprosić o pobranie. Generowanie danych pliku jest w przybliżeniu takie samo jak generowanie wszelkiego rodzaju danych w dowolnym języku: przenieś trochę bitów i bajtów, aż będą wyglądać, jak chcesz. – apsillers

+0

Na maszynach microsoft, na przykład za pomocą VBScript, możesz wykonać następujące czynności: Set fso = createobject ("scripting.filesystemobject") ... który działał tylko na przykład. Myślę, że był podobny sposób, aby to zrobić w javascript. – malkassem

0

Oto spec dla FS API. Niestety support ponieważ jest bardzo lekki. Chociaż, jeśli chcesz go używać w aplikacjach mobilnych, PhoneGap ma numer implement it.

Jeśli piszesz skrypt GreaseMonkey, masz GM_xmlhttpRequest, który nie ma tej samej zasady pochodzenia.

+0

Dzięki za udostępnienie! – Dandy

Powiązane problemy