Вход

Просмотр полной версии : сохранить текст в файл


annie88
10.11.2015, 13:32
Здравствуйте!
У меня такая задача: на странице есть некое текстовое поле и кнопка "сохранить". Необходимо сделать так, чтобы при нажатии на кнопку, содержимое текстового поля сохранялось в виде текстового файла на машине клиента, скажем в каталоге "Загрузки" .
Не могли бы Вы подсказать, какими средствами этого можно добиться?

laimas
10.11.2015, 13:52
в виде текстового файла на машине клиента, скажем в каталоге "Загрузки"

Непосредственно нельзя.

annie88
10.11.2015, 14:02
Непосредственно нельзя.
а как можно?

laimas
10.11.2015, 14:14
https://github.com/eligrey/FileSaver.js

Rise
10.11.2015, 14:23
annie88,
<form method="post" action="gettxt.php" target="gettxt">
<textarea name="text"></textarea>
<input type="submit" value="Скачать TXT">
<iframe name="gettxt" src="" style="display:none"></iframe>
</form>gettxt.php
<?php
header('Content-type: text/plain; charset=utf8');
header('Content-disposition: attachment; filename='.date('YmdHis').'.txt');
echo $_POST['text'];
?>

annie88
10.11.2015, 14:36
Rise, большое спасибо)))
А можно это как-нибудь сделать без вывода диалоговых окон?

Rise
10.11.2015, 14:41
annie88, нет

annie88
10.11.2015, 14:50
жалко, хотя и логично((((
Еще такой вопрос, можно ли вывести на печать файл, находящийся на стороне клиента не выводя при этом диалоговых окон, при условии что я имею доступ к браузеру клиента и могу его настраивать?

annie88
11.11.2015, 13:14
Не могли бы Вы подсказать, можно ли добиться того же эффекта, что и данной конструкции
annie88,
<form method="post" action="gettxt.php" target="gettxt">
<textarea name="text"></textarea>
<input type="submit" value="Скачать TXT">
<iframe name="gettxt" src="" style="display:none"></iframe>
</form>gettxt.php
<?php
header('Content-type: text/plain; charset=utf8');
header('Content-disposition: attachment; filename='.date('YmdHis').'.txt');
echo $_POST['text'];
?>
но, не используя textarea и submit? вместо этого текст берется из какого-нибудь div, а роль кнопки играет тоже какой-то div?

Rise
11.11.2015, 13:41
Не могли бы Вы подсказать, можно ли добиться того же эффекта
можно

annie88
11.11.2015, 13:44
можно
не могли бы Вы подсказать как это сделать?

Rise
11.11.2015, 13:57
annie88, какой-нибудь пример...

annie88
11.11.2015, 14:13
допустим,

<div id ="for_text" >Какое-то сообщение</div>
<div class = "button">
<a href= "#">Кнопка</a>
</div>

сейчас я реализую это как было написано выше, просто создаю промежуточный невидимый textarea и сначала переписываю данные в него, а затем уже использую функцию php
<?php
header('Content-type: text/plain; charset=utf8');
header('Content-disposition: attachment; filename='.date('YmdHis').'.txt');
echo $_POST['text'];
?>
Однако же теперь необходимо заменить кнопку <input type = "submit"> на блок с ссылкой и я, если честно, растерялась.

Rise
11.11.2015, 14:37
annie88, зачем менять...

annie88
11.11.2015, 14:54
эта функция должна стать частью другой системы, а там кнопки реализуются только таким способом :-?

annie88
12.11.2015, 12:35
Не могли бы Вы ответить на такой вопрос: допустим приходит файл от сервера, как его можно сохранить на клиенте, если не использовать форму?

EmperioAf
12.11.2015, 17:17
как его можно сохранить на клиенте, если не использовать форму
localStorage использовать

annie88
18.11.2015, 12:44
localStorage использовать
Спасибо)))
сохранение в браузере попробовала (в Chrome), но решила все-таки использовать форму:) это показалось мне более понятным)