Rev 1372 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/** FCKeditor - The text editor for internet* Copyright (C) 2003-2006 Frederico Caldeira Knabben** Licensed under the terms of the GNU Lesser General Public License:* http://www.opensource.org/licenses/lgpl-license.php** For further information visit:* http://www.fckeditor.net/** "Support Open Source software. What about a donation today?"** File Name: commands.php* This is the File Manager Connector for PHP.** File Authors:* Frederico Caldeira Knabben (fredck@fckeditor.net)*/function GetFolders( $resourceType, $currentFolder ){// Map the virtual path to the local server path.$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;// Array that will hold the folders names.$aFolders = array() ;$oCurrentFolder = opendir( $sServerDir ) ;while ( $sFile = readdir( $oCurrentFolder ) ){if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) )$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;}closedir( $oCurrentFolder ) ;// Open the "Folders" node.echo "<Folders>" ;natcasesort( $aFolders ) ;foreach ( $aFolders as $sFolder )echo $sFolder ;// Close the "Folders" node.echo "</Folders>" ;}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[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;else{$iFileSize = filesize( $sServerDir . $sFile ) ;if ( $iFileSize > 0 ){$iFileSize = round( $iFileSize / 1024 ) ;if ( $iFileSize < 1 ) $iFileSize = 1 ;}$aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;}}}// Send the foldersnatcasesort( $aFolders ) ;echo '<Folders>' ;foreach ( $aFolders as $sFolder )echo $sFolder ;echo '</Folders>' ;// Send the filesnatcasesort( $aFiles ) ;echo '<Files>' ;foreach ( $aFiles as $sFiles )echo $sFiles ;echo '</Files>' ;}function CreateFolder( $resourceType, $currentFolder ){$sErrorNumber = '0' ;$sErrorMsg = '' ;if ( isset( $_GET['NewFolderName'] ) ){$sNewFolderName = $_GET['NewFolderName'] ;if ( strpos( $sNewFolderName, '..' ) !== FALSE )$sErrorNumber = '102' ; // Invalid folder name.else{// 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 '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ;}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 '<script type="text/javascript">' ;echo 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . str_replace( '"', '\\"', $sFileName ) . '") ;' ;echo '</script>' ;exit ;}?>