View file wu-engine/wu-actions/eshop_item_download_noreg.php

File size: 1.95Kb
<?php
require_once('../wu_init.php');

$id = mysqli_real_escape_string($connect_db, $_GET['id']);
$exp = explode('/', $id);
$id = $exp[1];
list($item, $exp, $md) = explode('_', $id);
$item = intval($item);
$sec = mysqli_fetch_assoc(mysqli_query($connect_db, "SELECT id,usr,ty,fi,sec,dt FROM ".DB_PREFIX."_es WHERE id='$item' AND st = '1'"));
$hash = $sec['id'].'_'.$exp.'_'.md5(md5($sec['id'].'wu'.$exp.$sec['usr'].$sec['dt'])).'wu';
if (!USER_LOGGED) { $u_id = '330'; }
if ($id === $hash) {
if ($exp < $dt) { exit('Время жизни ссылки истекло'); }
if ($sec['ty'] == 1) { exit('Неверный тип товара'); }
$fsize=filesize('../../eshop/items/'.$sec['sec']);
$fdown='../../eshop/items/'.$sec['sec'];
if (getenv('HTTP_RANGE')=="") {
$f=fopen($fdown, 'r');
if (ob_get_level()) {
ob_end_clean();
}
header("HTTP/1.1 200 OK");
header("Connection: close");
header("Content-Type: application/rar");
header("Accept-Ranges: bytes");
header("Content-Disposition: Attachment; filename=".$sec['fi']);
header("Content-Length: ".$fsize); 
while (!feof($f)) {
if (connection_aborted()) {
fclose($f);
break;
}
echo fread($f, 1000000);
sleep(1);
}
fclose($f);
}
else {
preg_match ("/bytes=(\d+)-/", getenv('HTTP_RANGE'), $m);
$csize=$fsize-$m[1]; // Размер фрагмента
$p1=$fsize-$csize; // Позиция, с которой начинать чтение файла
$p2=$fsize-1; // Конец фрагмента
$f=fopen($fdown, 'r');
if (ob_get_level()) {
ob_end_clean();
}
header("HTTP/1.1 206 Partial Content");
header("Connection: close");
header("Content-Type: application/rar");
header("Accept-Ranges: bytes");
header("Content-Disposition: Attachment; filename=".$sec['fi']);
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($f, 1000000);
sleep(1);
}
fclose($f);
}
} else {
echo 'Неверная ссылка';
}
?>