
LCARS is a template for the GetSimple CMS that mimics the monitor appearance in the television series Star Trek: The Next Generation
63 lines
1.5 KiB
PHP
63 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* Download Files
|
|
*
|
|
* Forces the download of file types
|
|
*
|
|
* @package GetSimple
|
|
* @subpackage Download
|
|
*/
|
|
|
|
// Setup inclusions
|
|
$load['plugin'] = true;
|
|
|
|
// Include common.php
|
|
include('inc/common.php');
|
|
login_cookie_check();
|
|
|
|
# check if all variables are set
|
|
if(isset($_GET['file'])) {
|
|
|
|
$file = removerelativepath($_GET['file']);
|
|
|
|
if(!filepath_is_safe($file,GSDATAUPLOADPATH) && !filepath_is_safe($file,GSBACKUPSPATH.DIRECTORY_SEPARATOR.'zip')) die();
|
|
|
|
$extention = pathinfo($file,PATHINFO_EXTENSION);
|
|
header("Content-disposition: attachment; filename=".$file);
|
|
|
|
# set content headers
|
|
if ($extention == 'zip') {
|
|
header("Content-type: application/octet-stream");
|
|
} elseif ($extention == 'gz') {
|
|
header("Content-type: application/x-gzip");
|
|
} elseif ($extention == 'mpg') {
|
|
header("Content-type: video/mpeg");
|
|
} elseif ($extention == 'jpg' || $extention == 'jpeg' ) {
|
|
header("Content-type: image/jpeg");
|
|
} elseif ($extention == 'txt' || $extention == 'log' ) {
|
|
header("Content-type: text/plain");
|
|
} elseif ($extention == 'xml' ) {
|
|
header("Content-type: text/xml");
|
|
} elseif ($extention == 'js' ) {
|
|
header("Content-type: text/javascript");
|
|
} elseif ($extention == 'pdf' ) {
|
|
header("Content-type: text/pdf");
|
|
} elseif ($extention == 'css' ) {
|
|
header("Content-type: text/css");
|
|
}
|
|
|
|
# plugin hook
|
|
exec_action('download-file');
|
|
|
|
# get file
|
|
if (file_exists($file)) {
|
|
readfile($file, 'r');
|
|
}
|
|
exit;
|
|
|
|
} else {
|
|
echo 'No such file found';
|
|
die;
|
|
}
|
|
|
|
exit; |