Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод файла

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: не выводится файл на сервере
alexvb
Отправлено: 09 Марта, 2016 - 20:25:10
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Доброго вечера! Коллеги, подскажите пожалуйста в чем может быть проблема.
Вывожу файл
PHP:
скопировать код в буфер обмена
  1.  
  2. if (file_exists($file)) {
  3.     header('Content-Description: File Transfer');
  4.     header('Content-Type: application/octet-stream');
  5.     header('Content-Disposition: attachment; filename=' . basename($file));
  6.     header('Content-Transfer-Encoding: binary');
  7.     header('Expires: 0');
  8.     header('Cache-Control: must-revalidate');
  9.     header('Pragma: public');
  10.     header('Content-Length: ' . filesize($file));
  11.     readfile($file);
  12.     exit;
  13. }
  14.  

На локалке без проблем, сразу выскакивает окно "сохранить как....".
На сервере тупо выводит в файл и все... Причем файл читает и выводит в браузер. А нужно именно чтоб окно всплывало "сохранить как...."
Заранее спасибо!
 
 Top
alexvb
Отправлено: 10 Марта, 2016 - 08:37:59
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Тогда такой вопрос: Какой заголовок или функция заставляет браузер поднимать окно "Сохранить как?" ?
 
 Top
freelsd
Отправлено: 10 Марта, 2016 - 08:51:53
Post Id


Гость


Покинул форум
Сообщений всего: 108
Дата рег-ции: Февр. 2015  


Помог: 1 раз(а)




alexvb пишет:
Тогда такой вопрос: Какой заголовок или функция заставляет браузер поднимать окно "Сохранить как?" ?


Вот этот заголовок, насколько я понимаю предлагает сохранить файл.
CODE (htmlphp):
скопировать код в буфер обмена
  1. header('Content-Disposition: attachment; filename=' . basename($file));

filename, кстати должен быть окружен двойными кавычками filename="' . basename($file).")
Я не уверен, но некоторые заголовки которые вы используете - необязательные, попробуйте некоторые из них убрать, и посмотреть в какой вариации будет работать. И посмотрите какие заголовки на самом деле отправляются когда вы скачиваете файл, для этого можно использовать fiddler4.
 
 Top
alexvb
Отправлено: 10 Марта, 2016 - 09:15:38
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Этот заголовок поднимает, но только на локалке. На сервере выводит на страницу. Может быть в настройках сервера дело? В какую сторону копать?
 
 Top
freelsd
Отправлено: 10 Марта, 2016 - 10:49:23
Post Id


Гость


Покинул форум
Сообщений всего: 108
Дата рег-ции: Февр. 2015  


Помог: 1 раз(а)




alexvb пишет:
Этот заголовок поднимает, но только на локалке. На сервере выводит на страницу. Может быть в настройках сервера дело? В какую сторону копать?

Ну посмотрите в fiddler или другой веб-прокси, какие заголовки сервер ваш на самом деле отправляет, не факт что не же что вы отдаете. А там уже и видно будет. А настройки, скорее всего тут только апачевские. Но имхо чтобы понять что не так нужно увидеть что действительно отправляет сервер.

(Отредактировано автором: 10 Марта, 2016 - 10:55:39)

 
 Top
alexvb
Отправлено: 11 Марта, 2016 - 11:22:13
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Content-Disposition сервер не оправляет....
Т.е. файл я так понимаю не дает на скачивание.
И как с этим бороться?
 
 Top
freelsd
Отправлено: 11 Марта, 2016 - 12:36:30
Post Id


Гость


Покинул форум
Сообщений всего: 108
Дата рег-ции: Февр. 2015  


Помог: 1 раз(а)




Значит у вас перед этим кодом что-то идет не так. Вы кстати
перед отправкой файла делаете?
 
 Top
alexvb
Отправлено: 28 Марта, 2016 - 10:01:25
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




ob_clean (); сделал. Не помогает.
Подскажите, а запись в файл перед header("Location....) не является выводом?
(Добавление)
Вроде нарыл причину. $_SERVER['DOCUMENT_ROOT'] на сервере не работает. Вопрос только почему?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB