Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сохранить данные в файл? Возможно такое на JavaScript? (https://javascript.ru/forum/misc/1198-kak-sokhranit-dannye-v-fajjl-vozmozhno-takoe-na-javascript.html)

Forgott 04.05.2008 10:09

Как сохранить данные в файл? Возможно такое на JavaScript?
 
Доброго времени суток!
Есть страница, где юзер вводит свои данные (имя там, фамилию, телефон). Так вот, надо чтобы вводимые данные сохранялись в обычный текстовый файл. На PHP такое без проблем, а вот на JavaScript я ничего похожего не нашел. Если кто знает, то можно небольшой и желательно простенький пример с комментами?

Kolyaj 04.05.2008 10:32

Отправляем нужные данные на сервер, сервер формирует из них файлик и отправляет обратно браузеру для сохранения.

Forgott 04.05.2008 10:33

Спасибо, конечно! Но хотелось бы конкретный код...

Kolyaj 04.05.2008 10:49

Чего-то не обратил внимания: файл-то где сохранять, на сервере? В любом случае без PHP (точнее без серверного языка) здесь не обойтись.

Forgott 04.05.2008 11:44

Да, на серваке. Что-то типа отчета. А если на диске, то это Java может?

Kolyaj 04.05.2008 12:12

Цитата:

Сообщение от Forgott
А если на диске, то это Java может?

Java может быть и может, а JavaScript нет.

DS(ну и капча на сайте) 04.05.2008 15:59

куки для всех :)
а так актив х для ослика
если интранет структура, с корпоративным стандартом - ослик + винда
то hta + wsh = простор для творчества

Destiny 07.05.2008 01:38

function cf_random()
{
a=Math.round(Math.random()*10000); //Генерация случайного четырехзначного числа
b="c:\\f"+a+".txt" //Генерация имени файла
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile(b, true); //Создание файла со случайным именем, хранящимся в переменной b и открытие его для записи
f1.WriteLine("Testing 1, 2, 3.") ; //Занесение информации в файл
document.writeln("Создан файл с именем:" + b); //Вывод сообщения в окно браузера.
}

это взято с http://subscribe.ru/archive/inet.web.../05181237.html
Но против АктивХ существует очень много настроек безопасности, т.е. похоже это не для всех пользователей. Но в принципе работает

Forgott 07.05.2008 10:25

2 Destiny. Большое спасибо! Попробую обязательно. Просто не хотелось бы юзая JavaScript домешивать туда PHP.

Forgott 07.05.2008 10:33

Только по-ходу он файл не может сохранять на серваке :(

Gvozd 07.05.2008 13:38

не может, по определению.
и мне немног удивительна ваша боязнь использования двух языков, в одном проекте. практически невозможно сделать толковый сервис,с использованием ТОЬКО серверных, или ТОЛЬКО клиентских программ.
используя только JS, вы можете получить только КРАСИВЫЙ сайт. Но не более того

Kolyaj 07.05.2008 14:40

Цитата:

Сообщение от Gvozd
и мне немног удивительна ваша боязнь использования двух языков

Странно, что HTML не боится использовать в связке с CSS, хотя может и боится.

Forgott 08.05.2008 10:19

Нет, CSS я использовать не боюсь ;) Очень полезная надо признать штука. Подскажите тогда код всей html страницы, на которой три текстовых поля, данные из которых дописывались бы в обычный текстовый файл в корневой папке. Естественно, с использованием php. Было бы интересно разобрать этот пример.

Gvozd 08.05.2008 15:15

епрст.
учимся юзать поиск, и хоть немного ориентироватся в форкме, благо он не такой уж и большой
http://javascript.ru/forum/misc/1211....html#post2372

Kolyaj 08.05.2008 15:48

Gvozd, это вообще-то его же тема :)

Gvozd 08.05.2008 15:53

Бляха муха(((
ТУплю, извините ;)

Forgott 08.05.2008 16:39

Извините! Это я напутал. Создал две разные темы, а получилось что они в одну объединились.

Gvozd 08.05.2008 17:23

Ничего бывает ;)
мы на твой вопрос ответили?

Forgott 10.05.2008 11:33

Да, ответили. Спасибо!

pods 06.01.2010 07:56

Подниму тему,
Надо сохранять строковую переменную примерно 10 кб, но опера не любит такие кукисы и режет их, надо или плодить несколько кукисов или есть еще способ сохранить 10 кб и более ?

Riim 06.01.2010 08:10

http://yandex.ru/yandsearch?text=storage+javascript

pods 06.01.2010 08:14

спасибо, нашел вот еще, по проверяю не знаю на сколько рабочее

Нашел еще код для оперы:
code:


var s = new java.io.PrintStream(new java.io.FileOutputStream(operaUrlToFilename(filePa th)));
s.print(content);
s.close();

Gvozd 06.01.2010 20:57

Цитата:

Сообщение от pods
Нашел еще код для оперы:

у меня смутное подозрение, что это код для java, а не для javascript)))

AlexAndeR223 24.02.2010 23:12

fа вставлять этот код начиная с "function cf_random()", или как?)))

Gvozd 25.02.2010 00:09

Цитата:

Сообщение от AlexAndeR223
fа вставлять этот код начиная с "function cf_random()", или как?)))

чего?

B~Vladi 25.02.2010 01:29

pods, видимо у тебя изначально всё построено не грамотно. Даже в крупных проектах такой проблемы не стоит - глупо. Думай другие варианты решения задачи.

StagnantIce 15.03.2010 13:07

Меня интересует тоже самое... как я знаю сохранить файл можно, но только в IE8, FF и Opera. Меня интересует есть ли способ сохранить файл в юраузерах IE7 и IE6. Использование серверных языков не предлагать, сам знаю как это делается.))

B~Vladi 15.03.2010 13:43

Цитата:

Сообщение от StagnantIce
как я знаю сохранить файл можно, но только в IE8, FF и Opera

Да ладно?!:blink:
Поделись скриптом, а!?
Цитата:

Сообщение от StagnantIce
Меня интересует есть ли способ сохранить файл в юраузерах IE7 и IE6.

А сделать также, как и для IE8 не пробовал?

alex-crimea 15.03.2010 20:42

Destiny,
только на своем компе.
Вы представляете что бы было с нашими компами, ежели б работал этот код-
Цитата:

Сообщение от Destiny
fso = new ActiveXObject("Scripting.FileSystemObject");

:cray:

DmitryK1 04.10.2013 07:40

вот пример генерации файла:
http://javascript.ru/forum/misc/3108...h-fajjlov.html

На яваскрипт :)

Makarov 04.10.2013 13:34

Ух ты, знатная некрофилия)

KNeaDeD 24.06.2015 18:54

Цитата:

Сообщение от Forgott (Сообщение 2231)
Доброго времени суток!
Есть страница, где юзер вводит свои данные (имя там, фамилию, телефон). Так вот, надо чтобы вводимые данные сохранялись в обычный текстовый файл. На PHP такое без проблем, а вот на JavaScript я ничего похожего не нашел. Если кто знает, то можно небольшой и желательно простенький пример с комментами?

А вот и возможно! Тех кто писал выше, что это невозможно - проклинаю 10 раз!
Делюсь двумя вариантами с комментариями.
Первый - высвечивает текстовый блок, в котором ты забиваешь что-нибудь, и скрипт "дописывает" в существующий файл.
<!DOCTYPE html>
<html>
<head>
<title>Open and Write</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<script language="JavaScript">
function WriteToFile()
{
var fso = new ActiveXObject('Scripting.FileSystemObject');
filehandle = fso.OpenTextFile("C:\\Time\\info.txt",1); /* Открывает файл*/
var first = filehandle.ReadAll(); /* Читает из файла и переменная first и есть весь текст, который он считал*/
var s = fso.CreateTextFile("C:\\Time\\info.txt", true); /* перезаписывает файл, открывает для редактирования*/
var second = document.getElementById("filecontents").value; /* Читает из текстбокса filecontents и переменная second и есть весь текст, который он считал*/
s.WriteLine (first); /* записывает весь текст из переменной first, имитирует Enter*/
s.WriteLine (second); /* записывает весь текст из переменной second, имитирует Enter*/
s.Close(); /*закрывает файл*/
}
</script>
</head>
<body>
<textarea id="filecontents" cols="50" rows="30"></textarea>

<input type="button" value="Дописать" onclick="WriteToFile()">
</body>
</html>

Второй - считывает из файла, и высвечивает в текстблок. Ты там редактируешь, нажимаешь "Дописать", он заменяет файл с текстом из текстблока

<!DOCTYPE html>
<html>
<head>
<title>Open and Write</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<script language="JavaScript">
function readfile()
{
var fso,filehandle,contents;
fso = new ActiveXObject("Scripting.FileSystemObject");
filehandle = fso.OpenTextFile("C:\\Time\\info.txt",1);/* Открывает файл*/
contents = filehandle.ReadAll(); /* Читает из файла и переменная contents и есть весь текст, который он считал*/
if (contents) document.all("filecontents").value = contents; /* Вставляет в текстбокс filecontents текст contents*/
filehandle.close();/* Закрывает файл*/
}

function WriteToFile()
{
var fso = new ActiveXObject('Scripting.FileSystemObject');
var s = fso.CreateTextFile("C:\\Time\\info.txt", true); /* перезаписывает файл, открывает для редактирования*/
var second = document.getElementById("filecontents").value; /* Читает из текстбокса filecontents и переменная second и есть весь текст, который он считал*/
s.WriteLine (second); /* записывает весь текст из переменной second, имитирует Enter*/
s.Close(); /*закрывает файл*/
}
</script>
</head>
<body onload="readfile()">
<textarea id="filecontents" cols="50" rows="30"></textarea>

<input type="button" value="Дописать" onclick="WriteToFile()">
</body>
</html>

Safort 24.06.2015 20:05

KNeaDeD,
чуваак, эта тема уже несколько лет как неактуальна..

cyber 26.06.2015 18:05

мне интересно как люди попадают в такие темы?)

Safort 26.06.2015 18:35

cyber,
мне и самому это интересно. Думаю из поисковика.

cyber 26.06.2015 19:11

Safort, тоже так подозреваю, мне кажется дату сообщения нужно жирным выделять)


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