1)
{
array_pop($arTemp);
$current = implode("/", $arTemp);
}
AuditAction($cfg["constants"]["fm_delete"], $del);
}
else
{
AuditAction($cfg["constants"]["error"], "ILLEGAL DELETE: ".$cfg['user']." tried to delete ".$del);
}
header("Location: dir.php?dir=".urlencode($current));
}
// Are we to download something?
if ($down != "" && $cfg["enable_file_download"])
{
$current = "";
// Yes, then download it
// we need to strip slashes twice in some circumstances
// Ex. If we are trying to download test/tester's file/test.txt
// $down will be "test/tester\\\'s file/test.txt"
// one strip will give us "test/tester\'s file/test.txt
// the second strip will give us the correct
// "test/tester's file/test.txt"
$down = stripslashes(stripslashes($down));
if (!ereg("(\.\.\/)", $down))
{
$path = $cfg["path"].$down;
$p = explode(".", $path);
$pc = count($p);
$f = explode("/", $path);
$file = array_pop($f);
$arTemp = explode("/", $down);
if (count($arTemp) > 1)
{
array_pop($arTemp);
$current = implode("/", $arTemp);
}
if (file_exists($path))
{
header("Content-type: application/octet-stream\n");
header("Content-disposition: attachment; filename=\"".$file."\"\n");
header("Content-transfer-encoding: binary\n");
header("Content-length: " . file_size($path) . "\n");
// write the session to close so you can continue to browse on the site.
session_write_close("TorrentFlux");
//$fp = fopen($path, "r");
$fp = popen("cat \"$path\"", "r");
fpassthru($fp);
pclose($fp);
AuditAction($cfg["constants"]["fm_download"], $down);
exit();
}
else
{
AuditAction($cfg["constants"]["error"], "File Not found for download: ".$cfg['user']." tried to download ".$down);
}
}
else
{
AuditAction($cfg["constants"]["error"], "ILLEGAL DOWNLOAD: ".$cfg['user']." tried to download ".$down);
}
header("Location: dir.php?dir=".urlencode($current));
}
// Are we to download something?
if ($tar != "" && $cfg["enable_file_download"])
{
$current = "";
// Yes, then tar and download it
// we need to strip slashes twice in some circumstances
// Ex. If we are trying to download test/tester's file/test.txt
// $down will be "test/tester\\\'s file/test.txt"
// one strip will give us "test/tester\'s file/test.txt
// the second strip will give us the correct
// "test/tester's file/test.txt"
$tar = stripslashes(stripslashes($tar));
if (!ereg("(\.\.\/)", $tar))
{
// This prevents the script from getting killed off when running lengthy tar jobs.
ini_set("max_execution_time", 3600);
$tar = $cfg["path"].$tar;
$arTemp = explode("/", $tar);
if (count($arTemp) > 1)
{
array_pop($arTemp);
$current = implode("/", $arTemp);
}
// Find out if we're really trying to access a file within the
// proper directory structure. Sadly, this way requires that $cfg["path"]
// is a REAL path, not a symlinked one. Also check if $cfg["path"] is part
// of the REAL path.
if (is_dir($tar))
{
$sendname = basename($tar);
switch ($cfg["package_type"])
{
Case "tar":
$command = "tar cf - \"".addslashes($sendname)."\"";
break;
Case "zip":
$command = "zip -0r - \"".addslashes($sendname)."\"";
break;
default:
$cfg["package_type"] = "tar";
$command = "tar cf - \"".addslashes($sendname)."\"";
break;
}
// HTTP/1.0
header("Pragma: no-cache");
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header('Content-Disposition: attachment; filename="'.$sendname.'.'.$cfg["package_type"].'"');
// write the session to close so you can continue to browse on the site.
session_write_close("TorrentFlux");
// Make it a bit easier for tar/zip.
chdir(dirname($tar));
passthru($command);
AuditAction($cfg["constants"]["fm_download"], $sendname.".".$cfg["package_type"]);
exit();
}
else
{
AuditAction($cfg["constants"]["error"], "Illegal download: ".$cfg['user']." tried to download ".$tar);
}
}
else
{
AuditAction($cfg["constants"]["error"], "ILLEGAL TAR DOWNLOAD: ".$cfg['user']." tried to download ".$tar);
}
header("Location: dir.php?dir=".urlencode($current));
}
if ($dir == "")
{
unset($dir);
}
if (isset($dir))
{
if (ereg("(\.\.)", $dir))
{
unset($dir);
}
else
{
$dir = $dir."/";
}
}
DisplayHead(_DIRECTORYLIST);
?>
";
if(!isset($dir)) $dir = "";
ListDirectory($cfg["path"].$dir);
DisplayFoot();
//**************************************************************************
// ListDirectory()
// This method reads files and directories in the specified path and
// displayes them.
function ListDirectory($dirName)
{
global $dir, $cfg;
$bgLight = $cfg["bgLight"];
$bgDark = $cfg["bgDark"];
$entrys = array();
$bg = $bgLight;
$dirName = stripslashes($dirName);
if (isset($dir))
{
//setup default parent directory URL
$parentURL = "dir.php";
//get the real parentURL
if (preg_match("/^(.+)\/.+$/",$dir,$matches) == 1)
{
$parentURL="dir.php?dir=" . urlencode($matches[1]);
}
echo "
["._BACKTOPARRENT."]";
}
echo "
".$entry." | ";
echo ""; echo " | "; echo " | ";
if ($cfg["enable_maketorrent"])
{
echo " |
| ";
// Can users download files?
if ($cfg["enable_file_download"])
{
// Yes, let them download
echo "";
echo " | ";
echo "".$fileSize." KB | "; echo "".date("m-d-Y g:i a", $timeStamp)." | "; echo "";
if( $cfg["enable_view_nfo"] && (( substr( strtolower($entry), -4 ) == ".nfo" ) || ( substr( strtolower($entry), -4 ) == ".txt" )) )
{
echo " |