|
|
Да, просто замени весь шаблон на этот:
|

08.11.2010, 07:07
|
|
Новичок на форуме
|
|
Регистрация: 08.11.2010
Сообщений: 1
|
|
|
передача файла с сервера на клиент
Добрый день. У меня вот какая проблема. Мне надо организовать передачу файла с сервера на клиент, известен такой споспоб передачи:
session_start();
header("Content-type: text/txt");
header("Content-Disposition: attachment; filename=\"text.txt\"");
echo $filestring;
так вот)))) это замечательно работает на локальной машние во всех браузерах. Если запуспить скрипт с рабочего сервера, это работает во всех браузерах кроме explorer'а. Дело в том что explorer предлогает сохранить не text.txt с содержимым $filestring а сам php файл который отрабатывается на сервере. Путем проб и ошибок было установленно что дело в открытии сессии.
А теперь внимание вопрос. можно ли организовать сохранение файла (который передается в виде строки) на клиенте без использования header(); либо отрыть сессию так что бы это не вызвало конфликтов с header();
Спасибо со помощь)
|
|

08.11.2010, 08:46
|
 |
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
|
IE (как и любой другой браузер) не может предложить сохранить сам .php файл потому что этот файл интерпретируется на сервере и клиенту отдается результат его работы. В Вашем случае IE просто пытается назвать файл так же, как называется тот файл, к которому Вы обратились запросом.
|
|

08.11.2010, 09:44
|
 |
Сам по себе
|
|
Регистрация: 09.06.2009
Сообщений: 963
|
|
header('Content-type: application/octet-stream');
header("Content-Disposition: attachment; filename=price.csv");
echo fread(fopen('price.csv', "rb"), filesize('price.csv'));
Так попробуйте
|
|

08.11.2010, 16:48
|
 |
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
|
Serg_pnz, Вы о чем? Автор где-то говорил, что ему нужно вывести .csv файл?
|
|

08.11.2010, 16:58
|
 |
Сам по себе
|
|
Регистрация: 09.06.2009
Сообщений: 963
|
|
Сообщение от B@rmaley.e><e
|
|
Serg_pnz, Вы о чем? Автор где-то говорил, что ему нужно вывести .csv файл?
|
Читаю в вопросе
Если запуспить скрипт с рабочего сервера, это работает во всех браузерах кроме explorer'а.
и предложил немного другой вариант. Подходит для чего угодно, не только .csv
|
|

08.11.2010, 19:04
|
 |
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
|
Ваш вариант ничем не отличается от того, что написано в первом после у автора. Точнее он не будет отличаться после доработки до того состояния, которое нужно автору.
|
|

09.11.2010, 10:04
|
 |
Сам по себе
|
|
Регистрация: 09.06.2009
Сообщений: 963
|
|
Не сочтите... охото разобраться.
Вот код из первого поста - всё работает и в IE http://tmp004.jcase.ru/
<?php
session_start();
header("Content-type: text/txt");
header("Content-Disposition: attachment; filename=\"aaaaaaaaaaa.txt\"");
echo 'sdvsdvsdvsdv';
?>
|
|

11.11.2010, 01:38
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 19.10.2010
Сообщений: 143
|
|
Без использования заголовка вы вобще ничего не передадите, это часть спецификации. Все что будет передано - мистика. За вас браузер или PHP что-то сам подставил. И в догонку MIME application/octet-stream не подходит для передачи MPG под винду. Правда Content-Disposition я не определял и видимо в этом и была моя беда  Настраивался HTTPD, а не PHP.
__________________
Если хочешь что-то сделать - сделай это…
|
|

11.11.2010, 22:21
|
|
Интересующийся
|
|
Регистрация: 10.11.2010
Сообщений: 22
|
|
|
Сообщение от B@rmaley.e><e
|
|
IE (как и любой другой браузер) не может предложить сохранить сам .php файл потому что этот файл интерпретируется на сервере и клиенту отдается результат его работы.
|
во истину так
|
Сообщение от B@rmaley.e><e
|
|
В Вашем случае IE просто пытается назвать файл так же, как называется тот файл, к которому Вы обратились запросом.
|
но у автора явно указано
header("Content-Disposition: attachment; filename=\"text.txt\"");
|
|

11.11.2010, 22:26
|
|
Интересующийся
|
|
Регистрация: 10.11.2010
Сообщений: 22
|
|
|
Сообщение от ojogin
|
|
Путем проб и ошибок было установленно что дело в открытии сессии
|
не представляю как сессия может помешать... быть может перед отправкой хэдера вы выводите в браузер какое-либо содержимое, или же возникает ошибка (нотайс, ворнинг), что не позволяет отправить заголовки
|
|
|
|