Header для видео

Zagreba

Guest
Header для видео

Всем привет. Предлагаю обсудить следующую проблему.
РНР работает в безопасном режиме,поетому реализован DbStorage(все файлы которые апплодятся попадают в базу).
Пишем в базу *.avi. Далее читаем с неё етот же *.avi.
В новом окне должен появиться проигрывающийся ролик.
PHP:
function get_file($file_name, $size, $c_type){
		if($file_name){
		$body = NDbStorage::getContent($file_name);
		header("Content-Disposition: attachment; filename=\"".$file_name."\"");
			header('Content-Length: '.$size);
			header("Content-Type: ".$c_type);
			print $body;
			exit;
		}
	}
}
Вызываем функцию и передаём параметры.
PHP:
$pfm->get_file($userfile_name,$userfile_size,"video/avi");
В итоге предлагается сохранить файл на диске и любоваться клипом.Но клип оказывается 0 байт. Может неправильно построены заголовки? Возможно ли в таком случае сразу просматривать фильм, после того как достал из базы без всяких сохранений?
 

Zagreba

Guest
А поконкретней? Что значит выдавать порциями?
 

SiMM

Новичок
AVI? В базу? Объёмами файлов можно поинтересоваться? А вообще, разумнее хранить его на сервере, а в БД хранить лишь путь к файлу. Клип оказывается 0 Мб благодаря проблеме кэширования в ослах - поищи по форуму, как с ней бороться.
 

Zagreba

Guest
avi до 5М.
насчёт хранения я согласен, но такова задача. Что искать и в чём проблема я непойму?
 

Zagreba

Guest
Кто занимался подобного рода геморром? Если есть такие киньте в меня работающим примером.
PHP:
function get_file($file_name, $size, $c_type){
		if($file_name){
  $body = NDbStorage::getContent($file_name);
   header("Content-type: application/octet-stream\nContent-Disposition: inline; filename=\"".$filename."\"");
  header('Cache-Control: no-cache, must-revalidate'); 
  header('Pragma: no-cache'); 
  header('Content-Length: '.$size);
  header('Content-Type:'".$c_type);
  print $body;
  exit;
		}
	}
}
После считывания с базы авишки откр.Медиа плеер и ругаеться ,что формат не поддерживаеться. Видно криво всё таки написаны header.
 

Johannes

Guest
Ошибка в
PHP:
header('Content-Type:'".$c_type);
Убери двойные кавычки сначала.
 

Zagreba

Guest
да обшибся маленько,когда код вставлял....не в етом проблема
 

Johannes

Guest
Предлагаю дебаг: запиши содержимое из БД в файл и попробуй его проиграть. Если все нормально -- надо копать с хидерами.

А возможно и не нормально...
 

SiMM

Новичок
Zagreba, на самом деле твоя проблема решается до примитивности просто - если после того, что сказал Johannes, ты убедишься в том, что отдаёшь файл правильно - тебе достаточно найти ресурс, где всё работает должным образом, и воспользоваться PHP FAQ: Просмотр обмена HTTP заголовками (в частном случае этот ресурс может быть твоим - если ты просто выложишь avi, и не будешь отдавать его скриптом - всё работает как надо?)
 
Сверху