|
|
|
| Подскажите как средствами php сделать вывод текста из переменной (текстовой, числовой и т.д) в файл на PC пользователя, а не в файл на сервере, причем для разных ОС, Win *nix и др. | |
|
|
|
|
|
|
|
для: lifead
(24.07.2009 в 05:12)
| | РНР работает на сервере и до компьютера клиента ему нет дела, а значит и средств записи чего либо на компьютер клиента у него нет. | |
|
|
|
|
|
|
|
для: sim5
(24.07.2009 в 05:44)
| | header('Content-Type: application/octet-stream');
header('Content-disposition: attachment; filename="то как файл будет называться на стороне клиента.txt"');
print $memory; | |
|
|
|
|
|
|
|
для: guye
(24.07.2009 в 11:07)
| | Это не запись скриптом РНР файла на клиенте, это нечто другое. | |
|
|
|
|
|
|
|
для: lifead
(24.07.2009 в 05:12)
| | ну можно пользователю предложить сохранить файл... | |
|
|
|
|
|
|
|
для: Loki
(24.07.2009 в 11:09)
| | а можно кусочек кода как это сделать? | |
|
|
|
|
|
|
|
для: lifead
(11.08.2009 в 06:05)
| | Пхп тут ни при чем.
Это в head:
<META HTTP-EQUIV="REFRESH" CONTENT="10;URL=file.txt">
|
Это в body:
Загрузка файла начнется через 10 секунд. Если загрузка файла не началась, нажмите на <a href="">ссылку</a>
|
| |
|
|
|
|
|
|
|
для: neadekvat
(11.08.2009 в 12:10)
| | И что дальше? | |
|
|
|
|
|
|
|
для: sim5
(11.08.2009 в 12:41)
| | Пользователю предложат сохранить файл. | |
|
|
|
|
|
|
|
для: neadekvat
(11.08.2009 в 13:18)
| | Автор спрашивает не о том, как извесить пользователя, а о том, как делается сохранение, а это как раз забота сервера (РНР) отдать файл. | |
|
|
|
|
|
|
|
для: sim5
(11.08.2009 в 14:50)
| | >ну можно пользователю предложить сохранить файл...
Автор темы:
>а можно кусочек кода как это сделать? | |
|
|
|
|
|
|
|
для: neadekvat
(11.08.2009 в 16:03)
| | Ну да, а ваше перенаправление как раз и сохранит? Автор вообще не знает о чем речь была, считая то, что сказал Loki, именно отдачей и сохранением файла на клиенте, собственно ваше перенаправление тут и нафиг не нужно. | |
|
|
|
|
|
|
|
для: sim5
(11.08.2009 в 16:21)
| | Перенаправление, если вы не заметили, ссылается на файл. Пытаясь открыть файл, что делает бразуер? Предлагает его сохранить на компьютер. | |
|
|
|
|
|
|
|
для: neadekvat
(11.08.2009 в 17:10)
| | А без перенаправления никак не отдать файл и не предложить сохранить его? | |
|
|
|
|
|
|
|
для: sim5
(11.08.2009 в 18:46)
| | Омг..ну уберите meta тег и оставьте только текст со ссылкой.
И это..хватит придираться уже. | |
|
|
|
|
|
|
|
для: lifead
(11.08.2009 в 06:05)
| | Суньте скриптик клиенту ;-)
<script language="JavaScript">
function CreateFile()
{
var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile("c:FileName", true);
tf.WriteLine("bla-bla-bla!!!") ;
tf.Close();
}
</script>
|
только ему все-равно придется дать согласие на сохранение... | |
|
|
|
|
|
|
|
для: mrSHTURMAN
(12.08.2009 в 06:36)
| | А причем тут РНР? И ни один разумный клиент на такое согласие не даст. | |
|
|
|
|
|
|
|
для: sim5
(12.08.2009 в 06:45)
| | Ну, исходя из "можно пользователю предложить сохранить файл..." - как вариант.
Записать-то надо на клиентской машине. А чем по-вашему плох JavaScript кроме необходимости подтверждения действия? | |
|
|
|
|
|
|
|
для: mrSHTURMAN
(12.08.2009 в 11:43)
| | А я разве говорил, что JavaScript плох чем-то? Есть понятие безопасности, а посему незнающего клиента пугать ActiveX, это очень плохо, а знающий пошлет вас.... в общем сами знаете куда. Кроме того, чтобы записать так, как вы показываете, нужно еще отдать кому следует на клиенте данные, чтобы не писать "бла-бла-бла....". | |
|
|
|
|
|
|
|
для: mrSHTURMAN
(12.08.2009 в 11:43)
| | >Записать-то надо на клиентской машине. А чем по-вашему плох JavaScript кроме необходимости подтверждения действия?
Плох не JavaScript.
Плохим является само намерение что-то ультимативно изменять на клиентской машине.
Ваше "суньте скриптик клиенту" является квинтэсссенцией этого намерения. | |
|
|
|
|
|
|
|
для: Trianon
(12.08.2009 в 14:25)
| | Обсуждений много, но вот ситуация следующая:
Есть php скрипт которые занимается обработкой базы данных: статистика, экспорт, различные изменения в БД. В результате работы скрипта формируется некоторая переменная с обработанными данными из БД. Так вот можно ли и если можно то как записать данную переменную в файл на машине пользователя, и не выводить все это безобразие на экран.
P.S. ОС пользователя может быть как от MSoft, так и *nix системы | |
|
|
|
|
|
|
|
для: lifead
(13.08.2009 в 04:54)
| | Без согласия пользователя, записать на его машину что-то нельзя! | |
|
|
|
|
|
|
|
для: sim5
(13.08.2009 в 05:03)
| | Надо с согласием и с запросом места куда ему этот файл записать. | |
|
|
|
|
|
|
|
для: lifead
(13.08.2009 в 05:07)
| | Значит вам надо отдавать файл на скачивание. И вам уже об этом говорили. Как отдавать файл пользователю, смотрите здесь примеры, их в разделе этом много. | |
|
|
|
|
|
|
|
для: sim5
(13.08.2009 в 05:15)
| | т.е. сначала необходимо записать файл на диск, а только затем его считать и отправить? | |
|
|
|
|
|
|
|
для: lifead
(13.08.2009 в 05:39)
| | Нет.
Перефразирую.
Надо отдать поток данных приложения на скачивание.
Браузер предложит сохранить этот поток, как файл с указанным именем ( в том месте, где пользователь обычно сохраняет файлы, скачанные из интернета)
Делается путем указания специального типа application/octet-stream, как показал guve (24.07.2009 в 11:07)
Единственное , для совместимости атрибут filename в поле content-disposition стоит повторить атрибутом name в поле content-type | |
|
|
|