'; } 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(); } ?>