<?php
/**
* Файл-маÑÑÑÑÑизаÑÐ¾Ñ Ð´Ð»Ñ ÐºÐ¾Ð½ÑÑÐ¾Ð»Ñ Ð·Ð°Ð³ÑÑзки пÑиваÑнÑÑ
Ñайлов
*
* @package energine
* @subpackage core
* @author pavka
* @copyright ColoCall 2008
* @version $Id: download.php,v 1.1 2008/04/10 16:12:06 pavka Exp $
*/
function getFile($filePath){
$fileType = 'application/octet-stream';
header("Cache-Control: public, must-revalidate");
header("Pragma: hack"); // WTF? oh well, it works...
header("Content-Type: " . $fileType);
header("Content-Length: " .(string)(filesize($filePath)) );
header('Content-Disposition: attachment; filename="'.basename($filePath).'"');
header("Content-Transfer-Encoding: binary\n");
readfile($filePath);
}
//еÑли вÑзвали download.php напÑÑмÑÑ - ниÑего не пÑоиÑÑ
одиÑ
if ($_SERVER['REQUEST_URI'] == $_SERVER['SCRIPT_NAME']) {
die ();
}
$protectedMode = isset($_GET['protected']);
//подклÑÑаем наÑалÑнÑе наÑÑÑойки
require_once('core/framework/ini.func.php');
//загÑÑжаем конÑигÑÑаÑÐ¸Ñ Ð´Ð»Ñ Ñого ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÐºÐ¾Ð½ÑигÑÑаÑионное знаÑение коÑÐ½Ñ ÑиÑÑемÑ
SystemConfig::load();
//полÑÑаем пÑÑÑ Ðº ÑайлÑ
$filePath = str_replace(SystemConfig::_getConfigValue('site.root'), '', $_SERVER['REQUEST_URI']);
//еÑли Ñайл не ÑÑÑеÑÑвÑÐµÑ - ÑообÑаем об ÑÑом
if (!file_exists($filePath)) {
die('File doesn\'t exist');
}
if (!$protectedMode) {
//СÑаÑÑÑем ÑеÑÑиÑ
UserSession::getInstance()->start();
//Создаем полÑзоваÑелÑ
$user = AuthUser::getInstance();
//еÑли полÑзоваÑÐµÐ»Ñ Ð°ÑÑенÑиÑиÑиÑован - вÑдаем Ñайл
if ($user->isAuthenticated()) {
getFile($filePath);
}
else {
die('File is accesible only for site users');
}
}
else {
getFile($filePath);
}