mam tablicę w która przechowuje pewne dane. Chciałbym żeby użytkownik mógł sobie tą tablicę pobrać w postaci pliku json. Tylko jak to zrobić?
W internecie znalazłem taki kod:
var saveToJSON = function(what) {
var file = new File(script.file.parent, 'file.json');
print(file);
// If file exists, we need to remove it first in order to overwrite its content.
if (file.exists())
file.remove();
file.open();
file.write(Json.encode(what));
file.close();
}
Aczkolwiek nigdzie nie mogę znaleźć co ma przedstawiać to: script.file.parent. Ten kod w ogóle jest poprawny? Jakoś to takie za proste
Z tym że ten kod utworzy i zapisze ten plik gdzieś. A co gdybym ja chciał, żeby wyskoczyło okienko w przeglądarce z zapytaniem “czy?” i “gdzie?” zapisać ten plik?
Musisz zdawać sobie sprawę, że operacje na plikach po stronie użytkownika są ograniczone (względy bezpieczeństwa), le oczywiście jest to możliwe. I teraz albo skorzystasz z możliwości oferowanych przez HTML5, albo na rozwiązaniach zaimplementowanych niezależnie przez producentów różnych przeglądarek (FF/Chrome/IE). Ale okienka “Zapisz jako” raczej nie uzyskasz, bo takie rzeczy nie są zaimplementowane w przeglądarkach - możesz ewentualnie wysyłać taki plik z poziomu skryptu na serwerze (np. PHP).
EDIT: Niestety ale teraz widzę że jest problem z tym, że nie jest otwierane okno Zapisz jako (musiałby być ustawiony nagłówek Content-Disposition: attachment; w odpowiedzi HTTP serwera)