Вход Регистрация
Файл: template/load.php
Строк: 56
<?
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 ___load($file,$max_length 0// функция копирования файла с ограничением длины
 
{
 if (
ob_get_level()) {ob_end_clean();} // если этого не сделать файл будет читаться в память полностью!
 
    
header('Content-Description: File Transfer');
    
header('Content-Type: application/octet-stream');
    
header('Content-Disposition: attachment; filename=' basename($file));
    
header('Content-Transfer-Encoding: binary');
    
header('Expires: 0');
    
header('Cache-Control: must-revalidate');
    
header('Pragma: public');
 
 
$a_data=unserialize(file_get_contents(DATA_FILE));  
 
 
$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;
     }
    }    

  
header('Content-Length: ' $a_data['size']);    
    
  
$fs fopen($file,"wb"); // открываем файл на запись
  
if ($fs)
   {
   
$a_data['status'] = 2;   // load  
   
$cur_size=0;   
   while((
$bin fread($fp1024)) != FALSE)
    {
    
$cur_size+=1024;
    if (
$max_length  && $cur_size $max_length// превысили разрешенный размер
     
{
     
$a_data['status'] = -2;     
     break;     
     }
     
fwrite($fs,$bin);
     print(
$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));
 
}


 
  
 
___load('../music/'.$song.'.mp3',0);
 
 
?>
Онлайн: 0
Реклама