Переменная row['video_url'] содержит значение "http://test1.ru/video/1/1.mp4"
<?
//Подключение к Базе Данных
include("flybit/mysql/configuration.php");
// Конфигурация Системы
include("flybit/system/configuration.php");
if(isset($_GET['id']))
{
$id = $flybit->check_input($_GET['id']);
$query=mysql_query("SELECT `video_url` FROM `content` WHERE `id`='".$id."'");
$num=mysql_num_rows($query);
if($num < 1)
{
exit('<meta http-equiv="refresh" content="0;URL=index.php" />');
}
else
{
$row=mysql_fetch_assoc($query);
$format=explode('.',$row['video_url']);
$format=substr($format[1], 0, 2);
if($format == 'flv')
{
$mime="video/x-flv";
}
else
{
$mime="video/mp4";
}
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT\n");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Content-type: ".$mime);
header("Content-Transfer-Encoding: binary");
$outname=$row['video_url'];
$len = filesize($outname);
header("Content-Length: ".$len.";\n");
readfile ($outname);
}
}
else
{
exit('<meta http-equiv="refresh" content="0;URL=index.php" />');
}
?>
В результате выводиться видео 0 кб.
Спустя 30 минут, 30 секунд (25.02.2012 - 13:01) Jack_White написал(а):
jalvar ты хоть структуру базы приблизительную покажи а то так сложно разобрать. Но вот у тебя $id в базе разве типа стринг? может без апострофов надо
Цитата (jalvar @ 25.02.2012 - 09:30) |
$query=mysql_query("SELECT `video_url` FROM `content` WHERE `id`='".$id."'"); |
вообще поставь
$query=mysql_query("SELECT `video_url` FROM `content` WHERE `id`='".$id."'") or die(mysql_error());
и смотри
Спустя 2 минуты, 39 секунд (25.02.2012 - 13:04) jalvar написал(а):
На базу вобще не обращай внимание.
Вот часть которая нужна.
Вот часть которая нужна.
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT\n");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Content-type: ".$mime);
header("Content-Transfer-Encoding: binary");
$outname=$row['video_url'];
$len = filesize($outname);
header("Content-Length: ".$len.";\n");
readfile ($outname);
Спустя 10 минут, 58 секунд (25.02.2012 - 13:15) Jack_White написал(а):
ну ты уверен что обрабатываешь строку видео норм?
проверь что у тебя выводит
проверь что у тебя выводит
Цитата (jalvar @ 25.02.2012 - 09:30) |
header("Content-Length: ".$len.";\n"); |
как-то странно строка записана разве правильно?
Спустя 40 минут, 42 секунды (25.02.2012 - 13:55) jalvar написал(а):
Ура. Ошибка оказалась в функции и в результате файл содержал не видео, а ошибку в нем.
Как заголовком передать название сохраняющего файла?
Как заголовком передать название сохраняющего файла?
Спустя 25 минут, 57 секунд (25.02.2012 - 14:21) Jack_White написал(а):
тоже не то
Цитата (jalvar @ 25.02.2012 - 10:04) |
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT\n"); |
Ты проверь что имеешь перед отправкой а тогда отправлять можно...
Цитата (jalvar @ 25.02.2012 - 10:04) |
readfile ($outname); |
а сначала не надо fopen()?
Спустя 2 часа, 14 минут, 32 секунды (25.02.2012 - 16:36) killer8080 написал(а):
Цитата (jalvar @ 25.02.2012 - 12:55) |
Как заголовком передать название сохраняющего файла? |
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
_____________
jallvar.oxnull.net - мой блог.