Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отдача файлов скриптом 
:(
    Опции темы
skyboy
Дата 29.8.2012, 23:05 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Sanchezzz @  29.8.2012,  15:55 Найти цитируемый пост)
X-Accel-Redirect

наконец-то!
я уже расстроился и собирался напоминать про X-SendFile  smile 
PM MAIL   Вверх
WolfAlone
Дата 1.9.2012, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: 1
Всего: 5



Всем большое спасибо! Пытаюсь детально разобраться в вопросе. Позже отпишу о результатах.


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
Gantenbain
Дата 22.5.2013, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



WolfAlone,  добрый день!

В надежде на то, что Вы "детально разобрались в вопросе", и, поскольку, это единственно более-менее "свежий" топик близкий к той проблеме, что меня занимает, решился здесь задать вопрос (хаоса в Вашу тему не внесу, т.к. вопрос очень близкий, и заводить новую тему показалось неправильным smile ).

Хостинг, услугами которого я сейчас пользуюсь, отдает видео с "Content-Type: application/octet-stream". Для большинства браузеров, это не представляет проблемы, но не для IE. Пользовательские MIME-types запрещены, нет .htaccess (сервер Apache/1.3.37 (Unix)) и, соответственно, всего, что с ним могло бы быть связано. PHP 5.3.6 установлен не модулем Apache, а FastCGI. Техподдержка MIME-types менять не будет, т.е. вообще ничего не будет делать - славный такой саппорт.

Пытался заменить заголовки для клиента пользователя таким образом:
Код

<?
$fname=$_GET['fname']; // getfile.php?fname=????.mp4
$fdown='http:*************************/pics/'.$fname;
$ext=substr(strrchr($fname, '.'), 1); 
/*
<source type="video/mp4"  src="/video.mp4" />
<source type="video/webm" src="/video.webm" />
<source type="video/ogg"  src="/video.ogv" />
*/
$ext=($ext=='ogv') ? 'Content-Type: video/ogg' : 'Content-Type: video/'.$ext;
$offset = 60 * 60 * 24 * 3;
$expStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
$f=fopen($fdown, 'rb');
if($f){
    header("HTTP/1.1 200 OK");
    header("Last-Modified    Sat, 11 May 2013 18:41:47 GMT");
    header("Cache-Control: public");
    header($expStr);
    header('ETag: "2e000000016c88-619996-4dc75a2d34769"');
    header("Connection: close");
    header($ext);
    while (!feof($f)) {
        echo fread($f, 8192);
    } 
}
fclose($f);
?> 

На локальном сервере работает, но не на хосте. ETag, в принципе, лишний, но оставил, чтобы показать, что пробовал даже самые бредовые варианты. Более того, при попытке раздачи файла через этот скрипт, даже те браузеры, что раньше легко воспроизводили контент, стали выдавать "no video with supported format and MIME type found". Причем, Content-Type: video/mp4 правильный, и размер файла Farebug  показывает, т.е. браузер его загрузил, но воспроизводить не пытается.
Вопрос первый: как раздать видео клиенту, указав правильный mime-type?
Вопрос второй: как заставить скрипт выдавать клиенту код 304? (гонять файлы большого размера, если они есть в кеше, не гуд smile )
apache_request_headers для чтения заголовков клиента использовать не могу, т.к. FastCGI и PHP 5.3.6 (не 5.4). В Глобальных переменных нужные данные не присутствуют ($_SERVER). Хостер разрешает Perl, CGI-BIN, но дела с ними не имел и возможностей не знаю.

Буду рад любым идеям.
PM MAIL WWW   Вверх
Gantenbain
Дата 21.6.2013, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Вопрос, для меня, давно перестал быть актуальным, но допускаю, что может кому-нибудь и пригодится его решение.
Проблема, как часто это бывает, состояла в недостаточной внимательности и пренебрежении системным подходом. phpinfo() показала, что хостером запрещена директива allow_url_fopen, поэтому скрипт просто не мог открыть файл для чтения. Но библиотека CURL, к счастью, оказалась включена. Пока администрации хостинга не придет в голову новая фантазия, скрипт, подающий IE заголовки благополучно работает. 
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.