передача файла с сервера на клиент
Добрый день. У меня вот какая проблема. Мне надо организовать передачу файла с сервера на клиент, известен такой споспоб передачи:
session_start(); header("Content-type: text/txt"); header("Content-Disposition: attachment; filename=\"text.txt\""); echo $filestring; так вот)))) это замечательно работает на локальной машние во всех браузерах. Если запуспить скрипт с рабочего сервера, это работает во всех браузерах кроме explorer'а. Дело в том что explorer предлогает сохранить не text.txt с содержимым $filestring а сам php файл который отрабатывается на сервере. Путем проб и ошибок было установленно что дело в открытии сессии. А теперь внимание вопрос. можно ли организовать сохранение файла (который передается в виде строки) на клиенте без использования header(); либо отрыть сессию так что бы это не вызвало конфликтов с header(); Спасибо со помощь) |
IE (как и любой другой браузер) не может предложить сохранить сам .php файл потому что этот файл интерпретируется на сервере и клиенту отдается результат его работы. В Вашем случае IE просто пытается назвать файл так же, как называется тот файл, к которому Вы обратились запросом.
|
header('Content-type: application/octet-stream'); header("Content-Disposition: attachment; filename=price.csv"); echo fread(fopen('price.csv', "rb"), filesize('price.csv')); Так попробуйте |
Serg_pnz, Вы о чем? Автор где-то говорил, что ему нужно вывести .csv файл?
|
Цитата:
Если запуспить скрипт с рабочего сервера, это работает во всех браузерах кроме explorer'а. и предложил немного другой вариант. Подходит для чего угодно, не только .csv |
Ваш вариант ничем не отличается от того, что написано в первом после у автора. Точнее он не будет отличаться после доработки до того состояния, которое нужно автору.
|
Не сочтите... охото разобраться.
Вот код из первого поста - всё работает и в IE http://tmp004.jcase.ru/ <?php session_start(); header("Content-type: text/txt"); header("Content-Disposition: attachment; filename=\"aaaaaaaaaaa.txt\""); echo 'sdvsdvsdvsdv'; ?> |
Без использования заголовка вы вобще ничего не передадите, это часть спецификации. Все что будет передано - мистика. За вас браузер или PHP что-то сам подставил. И в догонку MIME application/octet-stream не подходит для передачи MPG под винду. Правда Content-Disposition я не определял и видимо в этом и была моя беда :) Настраивался HTTPD, а не PHP.
|
Цитата:
Цитата:
header("Content-Disposition: attachment; filename=\"text.txt\""); |
Цитата:
|
Часовой пояс GMT +3, время: 23:38. |