|
Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Directory : /var/www/andreassugianto.com/public_html/plugins/content/jw_sigpro/jw_sigpro/includes/ |
Upload File : |
<?php
/**
* @version $Id: download.php 2725 2013-04-06 17:05:49Z joomlaworks $
* @package Simple Image Gallery Pro
* @author JoomlaWorks - http://www.joomlaworks.net
* @copyright Copyright (c) 2006 - 2013 JoomlaWorks Ltd. All rights reserved.
* @license http://www.joomlaworks.net/license
*/
// Set flag that this is a parent file
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
// Make proper detection of the JPATH_BASE path. The previous method failed under Joomla! 3.0
if (file_exists('..'.DS.'..'.DS.'..'.DS.'..'.DS.'..'.DS.'includes'.DS.'defines.php'))
{
define('JPATH_BASE', '..'.DS.'..'.DS.'..'.DS.'..'.DS.'..');
}
elseif (file_exists('..'.DS.'..'.DS.'..'.DS.'..'.DS.'includes'.DS.'defines.php'))
{
define('JPATH_BASE', '..'.DS.'..'.DS.'..'.DS.'..');
}
else
{
die ;
}
// Includes
require_once (JPATH_BASE.DS.'includes'.DS.'defines.php');
require_once (JPATH_BASE.DS.'includes'.DS.'framework.php');
jimport('joomla.filesystem.file');
// API
$mainframe = JFactory::getApplication('site');
$document = JFactory::getDocument();
// Assign paths
if (version_compare(JVERSION, '1.6.0', 'ge'))
{
$sitePath = str_replace(DS.'plugins'.DS.'content'.DS.'jw_sigpro'.DS.'jw_sigpro'.DS.'includes', '', dirname(__FILE__));
$siteUrl = str_replace('/plugins/content/jw_sigpro/jw_sigpro/includes/', '', JURI::root());
}
else
{
$sitePath = str_replace(DS.'plugins'.DS.'content'.DS.'jw_sigpro'.DS.'includes', '', dirname(__FILE__));
$siteUrl = str_replace('/plugins/content/jw_sigpro/includes/', '', JURI::root());
}
// Load the plugin language file
$language = JFactory::getLanguage();
$language->load('plg_content_jw_sigpro', JPATH_ADMINISTRATOR);
// Define error handling
$nogo = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>'.$mainframe->getCfg('sitename').'</title>
<link rel="stylesheet" href="'.$siteUrl.'/templates/system/css/error.css" type="text/css" />
</head>
<body>
<div align="center">
<div id="outline">
<div id="errorboxoutline">
<div id="errorboxheader">'.JText::_('JW_SIGP_PLG_DL_01').'</div>
<div id="errorboxbody">
<p><strong>'.JText::_('JW_SIGP_PLG_DL_02').':</strong></p>
<ol>
<li>'.JText::_('JW_SIGP_PLG_DL_03').'</li>
<li>'.JText::_('JW_SIGP_PLG_DL_04').'</li>
<li>'.JText::_('JW_SIGP_PLG_DL_05').'</li>
</ol>
<p><strong>'.JText::_('JW_SIGP_PLG_DL_06').':</strong></p>
<p>
<ul>
<li><a href="javascript:history.go(-1);">'.JText::_('JW_SIGP_PLG_DL_07').'</a></li>
<li><a href="'.$siteUrl.'/" title="'.JText::_('JW_SIGP_PLG_DL_08').'">'.JText::_('JW_SIGP_PLG_DL_09').'</a></li>
</ul>
</p>
<p>'.JText::_('JW_SIGP_PLG_DL_10').'</p>
</div>
</div>
</div>
</div>
</body>
</html>
';
// Start the process
$pathToSourceFile = JRequest::getString('file');
$pathToSourceFile = preg_replace('#[/\\\\]+#', DS, $pathToSourceFile);
if (strpos($pathToSourceFile, '..') !== false || strpos($pathToSourceFile, './') !== false)
{
echo $nogo;
exit ;
}
// Reference the "/images" or "/media/k2/galleries" directory
$ref_com_content = $siteUrl.'/'.substr(str_replace(DS, '/', $pathToSourceFile), 0, strlen('images/'));
$check_com_content = $siteUrl."/images/";
$ref_com_k2 = $siteUrl.'/'.substr(str_replace(DS, '/', $pathToSourceFile), 0, strlen('media/k2/galleries/'));
$check_com_k2 = $siteUrl."/media/k2/galleries/";
if (isset($pathToSourceFile) && ($ref_com_content === $check_com_content || $ref_com_k2 === $check_com_k2))
{
$getfile = $pathToSourceFile;
}
else
{
$getfile = NULL;
}
if (!$getfile)
{
// go no further if filename not set
echo $nogo;
}
else
{
// define the pathname to the file
$filepath = $sitePath.DS.str_replace('/', DS, $getfile);
// check that it exists and is readable
if (file_exists($filepath) && is_readable($filepath))
{
// get the file's size and send the appropriate headers
$size = filesize($filepath);
header('Content-Type: application/force-download');
header('Content-Length: '.$size);
header('Content-Disposition: attachment; filename="'.basename($getfile).'"');
header('Content-Transfer-Encoding: binary');
// open the file in binary read-only mode - suppress error messages if the file cannot be opened
$file = @ fopen($filepath, 'rb');
if ($file)
{
// stream the file and exit the script when complete
fpassthru($file);
exit ;
}
else
{
echo $nogo;
}
}
else
{
echo $nogo;
}
}