commands.php

来自「国外很不错的一个开源OA系统Group-Office」· PHP 代码 · 共 222 行

PHP
222
字号
<?php/* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben * * == BEGIN LICENSE == * * Licensed under the terms of any of the following licenses at your * choice: * *  - GNU General Public License Version 2 or later (the "GPL") *    http://www.gnu.org/licenses/gpl.html * *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL") *    http://www.gnu.org/licenses/lgpl.html * *  - Mozilla Public License Version 1.1 or later (the "MPL") *    http://www.mozilla.org/MPL/MPL-1.1.html * * == END LICENSE == * * This is the File Manager Connector for PHP. */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 folders	natcasesort( $aFolders ) ;	echo '<Folders>' ;	foreach ( $aFolders as $sFolder )		echo $sFolder ;	echo '</Folders>' ;	// Send the files	natcasesort( $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 ;}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?