Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сохранение контента в файл через JS (https://javascript.ru/forum/misc/15865-sokhranenie-kontenta-v-fajjl-cherez-js.html)

fdcore 17.03.2011 00:06

Сохранение контента в файл через JS
 
Здравствуйте, подскажите как можно сохранить определённый текст в файл, тоесть предложить пользователю сохранить файл на компьютер. Необходимо сделать только на JS без php. ActiveX не предлогать.

Пишу приложение для google webstore https://chrome.google.com/webstore/d...fbfke?hl=en-US. Приложение оффлайновое так что надо сделать без обращения к сторонним сайтам.

dmitriymar 17.03.2011 00:15

Цитата:

Сообщение от fdcore
Необходимо сделать только на JS без php

никак.скрипт не работает с файлами

fdcore 17.03.2011 00:32

может есть какой нибудь альтернативный способ? или придётся сохранять в гугле доки :(

dmitriymar 17.03.2011 00:51

fdcore,
какой может быть альтернативный если у языка нет средств для работы с файлами?

FINoM 17.03.2011 03:07

Filesystem API, File API и, возможно, Localstorage, который позволит хранить бд на клиенте. Это всё входит в набор HTML5 APIs и не будет работать в старых браузерах.

fdcore 17.03.2011 08:08

LocalStorage и SQLite и так уже используется в скрипте. Но надо сохранить именно html файлик на компьютер пользователя. File API кажется только позволяет заливать файлы переносов их в браузер.

B@rmaley.e><e 17.03.2011 09:22

FilesystemAPI позволяет. Только вот он нигде не реализован. (Разве что, быть может, в Хроме)

RX200 14.08.2011 09:29

fdcore,
Подобная проблема, подскажи как в итоге выкрутился?

RX200 14.08.2011 11:25

приведу кусок решения.
открытия файла работает в Мозиле, и не работает в ИЕ.
Сохранения файла работает в Мозиле, в других пока непроверял.
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>my</title>
<script type="text/javascript">
function newShader(){
  document.getElementById("textEditor").innerHTML=document.getElementById("fil")['files'][0].getAsBinary();}
function newFil(){
  return document.getElementById("textEditor").innerHTML;}
</script>
</head>
<body>
<input type="file" name="file" id="fil" value="">
<input type="button" value="открыть" onClick="newShader()">
<a href="javascript:newFil()" type="multipart/form-data">Сохранить файл</a>
<textarea id="textEditor" style="width:900;height:900;" spellcheck="false"></textarea><br>
</body>
</html>


При сохранении, с атрибутами надо ещё разбиратся, и при сохранение файлу по умолчанию ставится тип .part Тоесть неполный файл, так что пока вручную вводить имя надо. Возможное решение вставить в конец текста код конца файла пока непроверял.

mister_maxim 11.05.2012 11:40

<a href="javascript:newFil()" type="multipart/form-data">Сохранить файл</a>

Это конечно интересная идейка, но:
1. на firefox работает, а вот на моём любимом google chrome - нет...:(.. 2. даже на firefox нет возможности выбрать имя файла при сохранении.

а есть ли ещё варианты автономного(без сервера) сохранения?

может возможно как-то обмануть ajax, например отправить эхо-запрос (самому себе - в ответе было такое же содержимое как и в запросе) и выставить заголовки на скачивание?


Часовой пояс GMT +3, время: 06:59.