Вход Регистрация
Файл: магазин/e-proger/getfile.php
Строк: 67
<?
define
'ROOT_DIR'$_SERVER['DOCUMENT_ROOT'] );

include_once 
ROOT_DIR '/engine/config.php'// подключение к бд
$fname=$_GET['fname'];
$config_upl $pdo->Query("SELECT * from php_upload WHERE hash = '" $fname"' LIMIT 1")->fetch(PDO::FETCH_BOTH);
$nazvan $config_upl['title'];
$catalog $config_upl['catalog'];
$fsize=filesize('kukus/'.$catalog);
$fdown='kukus/'.$catalog;

// Установлена или нет переменная HTTP_RANGE
if (getenv('HTTP_RANGE')=="") {
  
// Читать и отдавать файл от самого начала
  
$f=fopen($fdown'r');

  
header("HTTP/1.1 200 OK");
  
header("Connection: close");
  
header("Content-Type: application/octet-stream");
  
header("Accept-Ranges: bytes");
  
header("Content-Disposition: Attachment; filename=".$nazvan);
  
header("Content-Length: ".$fsize);

  while (!
feof($f)) {
    if (
connection_aborted()) {
      
fclose($f);
      break;
    }
    echo 
fread($f990000);
    
sleep(1);
  }
  
fclose($f);
}
else {
  
// Получить значение переменной HTTP_RANGE
  
preg_match ("/bytes=(d+)-/"getenv('HTTP_RANGE'), $m);
  
$csize=$fsize-$m[1];  // Размер фрагмента
  
$p1=$fsize-$csize;    // Позиция, с которой начинать чтение файла
  
$p2=$fsize-1;         // Конец фрагмента

  
$f=fopen($fdown'r');

  
header("HTTP/1.1 206 Partial Content");
  
header("Connection: close");
  
header("Content-Type: application/octet-stream");
  
header("Accept-Ranges: bytes");
  
header("Content-Disposition: Attachment; filename=".$nazvan);
  
header("Content-Range: bytes ".$p1."-".$p2."/".$fsize);
  
header("Content-Length: ".$csize);

  
fseek ($f$p1);
  while (!
feof($f)) {
    if (
connection_aborted()) {
      
fclose($f);
      break;
    }
    echo 
fread($f990000);
    
sleep(1);
  }
  
fclose($f);
}
?>
Онлайн: 1
Реклама