';
}
closedir($oCurrentFolder);
// Open the "Folders" node.
echo "";
natcasesort($aFolders);
foreach ($aFolders as $sFolder)
echo $sFolder;
// Close the "Folders" node.
echo "";
}
function GetFoldersAndFiles($resourceType, $currentFolder) {
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder($resourceType, $currentFolder);
// Arrays that will hold the folders and files names.
$aFolders = array();
$aFiles = array();
$oCurrentFolder = opendir($sServerDir);
while ($sFile = readdir($oCurrentFolder)) {
if ($sFile != '.' && $sFile != '..') {
if (is_dir($sServerDir . $sFile))
$aFolders[] = ''; else {
$iFileSize = filesize($sServerDir . $sFile);
if ($iFileSize > 0) {
$iFileSize = round($iFileSize / 1024);
if ($iFileSize < 1)
$iFileSize = 1;
}
$aFiles[] = '';
}
}
}
// Send the folders
natcasesort($aFolders);
echo '';
foreach ($aFolders as $sFolder)
echo $sFolder;
echo '';
// Send the files
natcasesort($aFiles);
echo '';
foreach ($aFiles as $sFiles)
echo $sFiles;
echo '';
}
function CreateFolder($resourceType, $currentFolder) {
$sErrorNumber = '0';
$sErrorMsg = '';
if (isset($_GET['NewFolderName'])) {
$sNewFolderName = $_GET['NewFolderName'];
if (strpos($sNewFolderName, '..') !== FALSE)
$sErrorNumber = '102'; else // Invalid folder name.
{
// Map the virtual path to the local server path of the current folder.
$sServerDir = ServerMapFolder($resourceType, $currentFolder);
if (is_writable($sServerDir)) {
$sServerDir .= $sNewFolderName;
$sErrorMsg = CreateServerFolder($sServerDir);
switch ($sErrorMsg) {
case '' :
$sErrorNumber = '0';
break;
case 'Invalid argument' :
case 'No such file or directory' :
$sErrorNumber = '102'; // Path too long.
break;
default :
$sErrorNumber = '110';
break;
}
} else
$sErrorNumber = '103';
}
} else
$sErrorNumber = '102';
// Create the "Error" node.
echo '';
}
function FileUpload($resourceType, $currentFolder) {
$sErrorNumber = '0';
$sFileName = '';
if (isset($_FILES['NewFile']) && !is_null($_FILES['NewFile']['tmp_name'])) {
global $Config;
$oFile = $_FILES['NewFile'];
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder($resourceType, $currentFolder);
// Get the uploaded file name.
$sFileName = $oFile['name'];
// Replace dots in the name with underscores (only one dot can be there... security issue).
if ($Config['ForceSingleExtension'])
$sFileName = preg_replace('/\\.(?![^.]*$)/', '_', $sFileName);
$sOriginalFileName = $sFileName;
// Get the extension.
$sExtension = substr($sFileName, (strrpos($sFileName, '.') + 1));
$sExtension = strtolower($sExtension);
$arAllowed = $Config['AllowedExtensions'][$resourceType];
$arDenied = $Config['DeniedExtensions'][$resourceType];
if ((count($arAllowed) == 0 || in_array($sExtension, $arAllowed)) && (count($arDenied) == 0 || !in_array($sExtension, $arDenied))) {
$iCounter = 0;
while (true) {
$sFilePath = $sServerDir . $sFileName;
if (is_file($sFilePath)) {
$iCounter++;
$sFileName = RemoveExtension($sOriginalFileName) . '(' . $iCounter . ').' . $sExtension;
$sErrorNumber = '201';
} else {
move_uploaded_file($oFile['tmp_name'], $sFilePath);
if (is_file($sFilePath)) {
$oldumask = umask(0);
chmod($sFilePath, 0777);
umask($oldumask);
}
break;
}
}
} else
$sErrorNumber = '202';
} else
$sErrorNumber = '202';
echo '';
exit();
}
?>