Задать вопрос
@0xC0CAC01A

Как из запускаемого в браузере локального HTML с JS создать файл в локальной же файловой системе?

Как из запускаемого в браузере локального HTML с JS создать файл в локальной же файловой системе?

Ну, и если совсем ни как, то как из запущенного в браузере джаваскрипта передать сотню байт коду на питоне, работающему там же локально? Без серверов, в т.ч. поднятых локально.
  • Вопрос задан
  • 86 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Если ты говоришь про браузер, то никак. Посмотри в сторону електрон приложения, возможно он дает права работать с локальной системой.
Ответ написан
Комментировать
@rPman
Есть косвенное решение - разрешить в браузере сохранять загрузки автоматически без запроса места сохранения (на сколько я знаю это поведение по умолчанию) и из скрипта сформировать файл через File, Blob или MediaSource, создать для него ссылку с помощью createObjectURL (на сколько я помню это будет data uri строчка) и кликнуть по ней.

var file=new Blob([JSON.stringify(obj, null, 2)], {  type: "application/json"});
var url=URL.createObjectURL(file);
var a = document.getElementById("a"); // где то на странице невидимая ссылка
a.href = URL.createObjectURL(file);
a.download = 'myfilename.json';


Как вариант строчку сделать самому и отправить его прямо в location, что то типа location.href='data:text/plain;charset=utf-8,test').

Твое python приложение пусть ожидает файл в каталоге для загрузок, указанном в настройках браузера. Будь готов, что браузер добавить ' (xxx)' к имени файла, если такой же там уже есть.

Я примерно таким образом добавленным через консоль (или расширением типа greasemonkey) скриптом кликал и собирал данные в веб приложении, после отправлял их на сохранение в виде csv-шника, а затем собрал кучу сохраненных файлов уже десктопным приложением.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы