Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: создание файла
Форумы портала PHP.SU » » Вопросы новичков » создание файла

Страниц (1): [1]
 

1. anita - 11 Ноября, 2015 - 12:04:38 - перейти к сообщению
Здравствуйте!
У меня такая задача: на странице есть блок div с каким-то текстом внутри. Нужно создать файл и поместить в него этот текст, файл должен быть сохранен на машине клиента. У меня есть реализация с использованием textarea и input type = submit
CODE (html):
скопировать код в буфер обмена
  1. <form  method="post" action = "gettxt.php" target = "gettxt">
  2. <textarea id = "text" name = "text"></textarea>
  3. <p><input type = "submit" value = "Сохранить" ></p>
  4.  <iframe name="gettxt" src="" style="display:none"></iframe>
  5. </form>

gettxt.php
PHP:
скопировать код в буфер обмена
  1.  
  2. header('Content-type: text/plain; charset=utf8');
  3. header('Content-disposition: attachment; filename= text.txt');
  4. echo $_POST['text'];
  5.  

Однако же вместо input необходимо использовать ссылку <a> и я совсем запуталась unsure.gif:: ...
Не могли бы Вы мне разъяснить как это реализовать?
2. andrewkard - 11 Ноября, 2015 - 13:50:29 - перейти к сообщению
anita пишет:
У меня такая задача: на странице есть блок div с каким-то текстом внутри.

Берите содержимое этого элемента и отправляйте на сервер.
Спойлер (Отобразить)
3. anita - 11 Ноября, 2015 - 14:28:20 - перейти к сообщению
Спасибо)))
4. anita - 12 Ноября, 2015 - 11:47:28 - перейти к сообщению
Если разрешите, еще вопрос. Допустим мне пришел файл, как его сохранить на клиенте?
я никак не понимаю как это происходит, если не использовать форму и submit((((
5. andrewkard - 12 Ноября, 2015 - 12:23:39 - перейти к сообщению
anita пишет:
Допустим мне пришел файл, как его сохранить на клиенте?

Вывести ссылку на скачивание файла.
6. anita - 12 Ноября, 2015 - 12:32:30 - перейти к сообщению
andrewkard пишет:
Вывести ссылку на скачивание файла.
а как сделать так, что бы скачивание файла началось автоматически?
7. andrewkard - 12 Ноября, 2015 - 12:45:52 - перейти к сообщению
anita
Может я чего не понял, как Вы это видите? Вы заходите на какой то сайт, который сразу же начинает грузить Вам на машину какие то файлы без Вашего ведома?
8. anita - 12 Ноября, 2015 - 12:54:03 - перейти к сообщению
andrewkard пишет:
anita
Может я чего не понял, как Вы это видите? Вы заходите на какой то сайт, который сразу же начинает грузить Вам на машину какие то файлы без Вашего ведома?

нет, почему же
Я посылаю серверу данные и он формирует из них файл
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $.post("txt.php",
  3.                  {
  4.                    text: data
  5.                  }
  6.     );
  7.  }
  8.  

PHP:
скопировать код в буфер обмена
  1.  
  2.  header('Content-type: text/plain; charset=utf8');
  3.   header('Content-disposition: attachment; filename=talon.txt');
  4.   echo $_POST['text'];
  5.  

и пересылает его мне. Я не могу понять как теперь получить ссылку на этот файл. А используя ее и скрытый iframe получится как раз то что требуется)
9. andrewkard - 12 Ноября, 2015 - 13:26:45 - перейти к сообщению
anita пишет:
Я не могу понять как теперь получить ссылку на этот файл.

Сформируйте ссылку на файл и отдайте как ответ на AJAX запрос. И JS вставьте ее в какой нибудь элемент на странице.
10. anita - 12 Ноября, 2015 - 13:28:31 - перейти к сообщению
andrewkard пишет:
anita пишет:
Я не могу понять как теперь получить ссылку на этот файл.

Сформируйте ссылку на файл и отдайте как ответ на AJAX запрос. И JS вставьте ее в какой нибудь элемент на странице.
не подскажите, как ее можно сформировать?
11. andrewkard - 12 Ноября, 2015 - 15:18:38 - перейти к сообщению
Набросал, поправьте сами:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (isset($_POST['text'])){
  4. $name = 'test.txt';
  5. $file = __DIR__.DIRECTORY_SEPARATOR.'test.txt';
  6. file_put_contents($file,$_POST['text']);
  7. echo '/'.$name;
  8. }
  9. ?>
  10. <html>
  11. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
  12. <title></title>
  13. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
  14.  
  15. </head>
  16. <body>
  17. <script>
  18.     $(function(){
  19.         var text = $('#text').html();
  20.         $.ajax({
  21.             method: "POST",
  22.             url: "",
  23.             data: { text: text }
  24.         })
  25.             .done(function( msg ) {
  26.                 $('#text').html('<a href='+msg+'>SAVE FILE</a>')
  27.             });
  28.     })
  29. </script>
  30. <div id="text">Text</div>
  31. </body>
  32. </html>
  33.  
12. anita - 13 Ноября, 2015 - 05:54:25 - перейти к сообщению
andrewkard пишет:
Набросал, поправьте сами:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (isset($_POST['text'])){
  4. $name = 'test.txt';
  5. $file = __DIR__.DIRECTORY_SEPARATOR.'test.txt';
  6. file_put_contents($file,$_POST['text']);
  7. echo '/'.$name;
  8. }
  9. ?>
  10. <html>
  11. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
  12. <title></title>
  13. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
  14.  
  15. </head>
  16. <body>
  17. <script>
  18.     $(function(){
  19.         var text = $('#text').html();
  20.         $.ajax({
  21.             method: "POST",
  22.             url: "",
  23.             data: { text: text }
  24.         })
  25.             .done(function( msg ) {
  26.                 $('#text').html('<a href='+msg+'>SAVE FILE</a>')
  27.             });
  28.     })
  29. </script>
  30. <div id="text">Text</div>
  31. </body>
  32. </html>
  33.  

Огромное Вам спасибо Улыбка Улыбка Улыбка !!!

 

Powered by ExBB FM 1.0 RC1