Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2010, 08:07
Новичок на форуме
Отправить личное сообщение для ojogin Посмотреть профиль Найти все сообщения от ojogin
 
Регистрация: 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();
Спасибо со помощь)
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2010, 09:46
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

IE (как и любой другой браузер) не может предложить сохранить сам .php файл потому что этот файл интерпретируется на сервере и клиенту отдается результат его работы. В Вашем случае IE просто пытается назвать файл так же, как называется тот файл, к которому Вы обратились запросом.
Ответить с цитированием
  #3 (permalink)  
Старый 08.11.2010, 10:44
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 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'));

Так попробуйте
Ответить с цитированием
  #4 (permalink)  
Старый 08.11.2010, 17:48
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Serg_pnz, Вы о чем? Автор где-то говорил, что ему нужно вывести .csv файл?
Ответить с цитированием
  #5 (permalink)  
Старый 08.11.2010, 17:58
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

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

и предложил немного другой вариант. Подходит для чего угодно, не только .csv
Ответить с цитированием
  #6 (permalink)  
Старый 08.11.2010, 20:04
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Ваш вариант ничем не отличается от того, что написано в первом после у автора. Точнее он не будет отличаться после доработки до того состояния, которое нужно автору.
Ответить с цитированием
  #7 (permalink)  
Старый 09.11.2010, 11:04
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 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';
?>
Ответить с цитированием
  #8 (permalink)  
Старый 11.11.2010, 02:38
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

Без использования заголовка вы вобще ничего не передадите, это часть спецификации. Все что будет передано - мистика. За вас браузер или PHP что-то сам подставил. И в догонку MIME application/octet-stream не подходит для передачи MPG под винду. Правда Content-Disposition я не определял и видимо в этом и была моя беда Настраивался HTTPD, а не PHP.
__________________
Если хочешь что-то сделать - сделай это…
Ответить с цитированием
  #9 (permalink)  
Старый 11.11.2010, 23:21
Интересующийся
Отправить личное сообщение для Bercut Посмотреть профиль Найти все сообщения от Bercut
 
Регистрация: 10.11.2010
Сообщений: 22

Сообщение от B@rmaley.e><e
IE (как и любой другой браузер) не может предложить сохранить сам .php файл потому что этот файл интерпретируется на сервере и клиенту отдается результат его работы.
во истину так

Сообщение от B@rmaley.e><e
В Вашем случае IE просто пытается назвать файл так же, как называется тот файл, к которому Вы обратились запросом.
но у автора явно указано

header("Content-Disposition: attachment; filename=\"text.txt\"");
Ответить с цитированием
  #10 (permalink)  
Старый 11.11.2010, 23:26
Интересующийся
Отправить личное сообщение для Bercut Посмотреть профиль Найти все сообщения от Bercut
 
Регистрация: 10.11.2010
Сообщений: 22

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


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление страницы после получения ответа от сервера potrashitel AJAX и COMET 9 24.02.2015 10:04
Ответ сервера в плугине ajaxForm отдается неправильно. IgorOk jQuery 11 13.12.2009 04:35
Сохранение файла с сервера qwerty Общие вопросы Javascript 5 28.10.2009 12:39
загрузка файла с сервера AraGnom Общие вопросы Javascript 3 30.09.2009 14:42
передача массива с сервера subaru Общие вопросы Javascript 3 02.07.2008 19:57