Файл: template/get.php
Строк: 33
<?
ignore_user_abort(TRUE);
set_time_limit(300);
$song = isset($_GET['song']) ? intval($_GET['song']) : 0;
define ('DATA_FILE','../music/'.$song.'.dat');
if (!file_exists(DATA_FILE)) die(); // нет файла-нечегоделлать!
function ____copy($file,$max_length = 0) // функция копирования файла с ограничением длины
{
$a_data=unserialize(file_get_contents(DATA_FILE));
ini_set('default_socket_timeout', 60); // ждем соединения до 60 секунд
ini_set('user_agent', 'android');
$fp = fopen($a_data['url'],"rb");
if ($fp )
{
$a_header = stream_get_meta_data($fp); // получили заголовки
foreach($a_header["wrapper_data"] as $v)
if (stristr($v,"content-length"))
{
$v = explode(":",$v);
$a_data['size'] = intval(trim($v[1])); // размер файла
if ($a_data['size'] > 0)
{
file_put_contents(DATA_FILE,serialize($a_data)); // сохраним размер
break;
}
}
$fs = fopen($file,"wb"); // открываем файл на запись
if ($fs)
{
$a_data['status'] = 2; // load
$cur_size=0;
while(($bin = fread($fp, 1024)) != FALSE)
{
$cur_size+=1024;
if ($max_length > 0 && $cur_size > $max_length) // превысили разрешенный размер
{
$a_data['status'] = -2;
break;
}
fwrite($fs,$bin);
}
fclose($fs);
} else $a_data['status'] = -1; // error
fclose($fp);
} else $a_data['status'] = -1; // error
file_put_contents(DATA_FILE,serialize($a_data));
}
____copy('../music/'.$song.'.mp3',15000000); // Ограничение 15 Мб. (0 - без ограничений)
?>