[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: сохранить txt файл в папку указан пользователем?
zvezda_t
Здравствуйте!

Скажите мне пожалуйста, как сделать чтоб пользователь мог выбрать папку для сохранения сгенерированного txt файла?

Использую функцию:
file_put_contents("C:/text.txt","создан обычный текстовый файл");
но в этом случае файлы сохраняются на сервере?
а как его сохранить на комп пользователя?



Спустя 44 минуты, 11 секунд (9.09.2010 - 21:13) linker написал(а):
Сохранить на сервере, а потом хедерами отдать пользователю. Вот только куда именно сохранить будет выбирать пользователю, иначе на вирусняк похоже.

Спустя 18 секунд (9.09.2010 - 21:13) Nord написал(а):
Можно заставить пользователя скачать этот файл:

$filetxt = 'создан обычный текстовый файл';

header('Content-Description: File Transfer');
header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename=text.txt');
header('Content-Length: ' . strlen($filetxt));

echo $filetxt;

Спустя 9 часов, 24 минуты, 3 секунды (10.09.2010 - 06:37) zvezda_t написал(а):
Цитата (Nord @ 9.09.2010 - 18:13)
Можно заставить пользователя скачать этот файл:

$filetxt = 'создан обычный текстовый файл';

header('Content-Description: File Transfer');
header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename=text.txt');
header('Content-Length: ' . strlen($filetxt));

echo $filetxt;

У меня получился файл с текстом:
Цитата
<!DOCTYPE html PUBLIC "-//W3C

//у меня cms Joomla

а как туда мой текст записать?

Спустя 1 минута, 57 секунд (10.09.2010 - 06:39) zvezda_t написал(а):
Цитата (linker @ 9.09.2010 - 18:13)
Сохранить на сервере, а потом хедерами отдать пользователю. Вот только куда именно сохранить будет выбирать пользователю, иначе на вирусняк похоже.

а если очень нужно заранее прописать папку, чтоб пользователю не пришлось выбирать...
это возможно?

Спустя 14 минут, 2 секунды (10.09.2010 - 06:53) zvezda_t написал(а):
Еще скажите пожалуйста, почему я этим методом:
file_put_contents("C:/text.txt","создан обычный текстовый файл");

не могу файл на сетевой диск сохранить?

Спустя 1 час, 32 минуты, 57 секунд (10.09.2010 - 08:26) linker написал(а):
На сетевой подключенный диск можно, а вот через браузер нет указать папку нельзя - секурити. Хотя вирусняки лезут через дыры браузеров.

Спустя 13 минут, 51 секунда (10.09.2010 - 08:40) zvezda_t написал(а):
А файл как правильно создать?
этот метод:

$filetxt = 'создан обычный текстовый файл';

header('Content-Description: File Transfer');
header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename=text.txt');
header('Content-Length: ' . strlen($filetxt));

echo $filetxt;


создал текстовый файл, с содержимым:
Цитата
<!DOCTYPE html PUBLIC "-//W3C

(у меня cms Joomla - из за неё?)

и на сетевой диск, так
file_put_contents("D:/text.txt","создан обычный текстовый файл");

тоже не сохраняется((

Спустя 53 минуты, 4 секунды (10.09.2010 - 09:33) Nord написал(а):
Цитата
создал текстовый файл, с содержимым:
Цитата 
<!DOCTYPE html PUBLIC "-//W3C

Странно, проверил в Opera, Firefox, Chrome, IE8, передается файл:
Цитата

создан обычный текстовый файл

Тот код это все, что есть в php-файле?

Спустя 3 минуты, 50 секунд (10.09.2010 - 09:37) Семён написал(а):
На сетевой диск нельзя.
Проще папку в апач примонтировать.

Спустя 1 минута, 36 секунд (10.09.2010 - 09:38) linker написал(а):
Семён
Можно, если он примонтирован и ему назначена буква в винде, а здесь именно такой случай.

Спустя 4 минуты, 37 секунд (10.09.2010 - 09:43) Семён написал(а):
Цитата (linker @ 10.09.2010 - 10:38)
Семён
Можно, если он примонтирован и ему назначена буква в винде, а здесь именно такой случай.

Проверяю в XP, Сетевой диск Z:, вход в шару без авторизации, SambaServer.
При попытке file_put_contents на данный ресурс выдаёт ошибку несуществующего путя, диск примонтирован как сетевой.

Теперь вопрос, вы утверждаете что он работает, тогда как? В своё время я решил эту проблему именно добавлением доп. mount директорией в vhost апача.

Спустя 1 минута, 29 секунд (10.09.2010 - 09:44) zvezda_t написал(а):
Цитата (Nord @ 10.09.2010 - 06:33)

Тот код это все, что есть в php-файле?

нет.
в том пхп файле много всего есть, причем сайт под joomla работает
кодировка ansi, я меняла кодировку на utf8 без бом - не помогло...

Спустя 11 минут, 55 секунд (10.09.2010 - 09:56) Nord написал(а):
Цитата

нет.
в том пхп файле много всего есть,

Мой код передает все, что было послано на вывод
Т.е. по идее это должен быть отдельный скрипт, который шлет нужную информацию

Добавлено:
Как вариант, можно написать в вашем большом файле:

$_SESSION['txt'] = 'Текст, который нужно передать';

И дать ссылку на скрипт:

session_start();
header('Content-Description: File Transfer');
header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename=text.txt');
header('Content-Length: ' . strlen($_SESSION['txt']));
echo $_SESSION['txt'];


А проще тупо сохранить файл на сервере и дать пользователю на него ссылку, как было предложено выше smile.gif

Спустя 1 минута, 2 секунды (10.09.2010 - 09:57) linker написал(а):
Мда, соррь, туплю.

Спустя 1 минута, 36 секунд (10.09.2010 - 09:59) Семён написал(а):
linker
wink.gif

Спустя 1 час, 40 минут, 8 секунд (10.09.2010 - 11:39) zvezda_t написал(а):
Nord
сделала в отдельном файле.
если закоментировать:
//session_start();

то работает. а передать параметр сессии не получается.
сразу выходит ошибка -
Цитата
не удаётся найти файл... создать новый файл с таким именем?


Спустя 38 минут, 44 секунды (10.09.2010 - 12:18) zvezda_t написал(а):
Цитата
Теперь вопрос, вы утверждаете что он работает, тогда как? В своё время я решил эту проблему именно добавлением доп. mount директорией в vhost апача.

Семён, расскажи пожалуйста подробнее как это сделать?

Спустя 3 дня, 2 часа, 21 минута, 28 секунд (13.09.2010 - 14:39) zvezda_t написал(а):
Используя заголовки я создаю текстовый файл - браузер его выводит и предлагает либо открыть либо сохранить в нужную папку, скажите пожалуйста возможно ли при этом обновить мою страницу?
Во время создания текстового файла я еще и запись в БД делаю - поэтому мне нужно чтоб страничка обновилась и были видны изменения...
подскажите пожалуйста, как это сделать? rolleyes.gif

Спустя 15 часов, 29 минут, 37 секунд (14.09.2010 - 06:09) zvezda_t написал(а):
Невозможно потом страничку обновить, да? rolleyes.gif

Спустя 2 часа, 58 минут, 5 секунд (14.09.2010 - 09:07) Админ написал(а):

echo ("<meta http-equiv='refresh' content='5; url=index.php'>");
content=5 - время через которое произойдет переход на url=index.php

средствами JavaScript:
<script type="text/javascript">
document.location.href = "index.php";
</script>




_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.