У меня есть ситуация, когда мне нужно предоставить моим пользователям возможность сохранять некоторые данные, хранящиеся локально в их клиентской памяти на диск. В текущем обходном пути у меня есть такой обработчик
(define-handler (download-deck) ((deck :json))
(setf (header-out :content-type) "application/json"
(header-out :content-disposition) "attachment")
deck)
который делает именно то, на что он похож. Клиент отправляет свои данные вверх и сохраняет возвращаемый файл локально.
Это кажется глупым.
Пожалуйста, скажите, пожалуйста, лучший, более простой, кросс-браузерный способ позволить клиенту сохранить некоторые локальные данные на своем диске с помощью диалогового окна сохранения файла.
Каждый ответ, который я читал по этому вопросу, либо говорит "нет, вы не можете сохранять файлы с помощью javascript", либо "да, там есть эта полудокументированная часть API Chrome, которая может позволить вам сделать это на трех страницах".