Файл: adultscript-2.0.3-pro/files/libraries/framework/download.php
Строк: 62
<?php
defined('_VALID') or die('Restricted Access!');
class VDownload
{
public static function force($file=NULL, $data=NULL, $name=NULL, $mime=NULL)
{
if ($file && (!file_exists($file) OR !is_file($file))) {
return FALSE;
}
error_reporting(0);
if ($file) {
$size = filesize($file);
$ext = VFile::ext($file);
} else {
if (!$data OR !$name) {
return FALSE;
}
$size = filesize($file);
$ext = 'force-download';
}
$mimes = VF::cfg('library.mimes');
$mime = (isset($mimes[$ext])) ? $mimes[$ext]['0'] : 'application/force-download';
VResponse::add_header('Content-Type', $mime);
VResponse::add_header('Content-Disposition', 'attachment; filename="'.(($file) ? basename($file) : $name).'"');
if (VBrowser::get('name') == 'ie') {
VResponse::add_header('Expires', '0');
VResponse::add_header('Cache-Control', 'must-revalidate, post-check=0, pre-check=0');
VResponse::add_header('Pragma', 'public');
} else {
VResponse::add_header('Expires', '0');
VResponse::add_header('Pragma', 'no-cache');
}
VResponse::add_header('Content-Transfer-Encoding', 'binary');
VResponse::add_header('Content-Length', sprintf('%d', $size));
@ob_end_clean();
// this does not work on lighttpd/nginx
if (function_exists('apache_setenv')) {
@apache_setenv('no-gzip', 1);
}
set_time_limit(1800);
if(ini_get('zlib.output_compression')) {
ini_set('zlib.output_compression', 'Off');
}
VResponse::send_headers();
if ($file) {
readfile($file);
} else {
echo $data;
}
return TRUE;
}
}
?>