commands.php
上传用户:li2971742
上传日期:2021-11-18
资源大小:39096k
文件大小:5k
源码类别:

OA系统

开发平台:

C#

  1. <?php 
  2. /*
  3.  * FCKeditor - The text editor for internet
  4.  * Copyright (C) 2003-2006 Frederico Caldeira Knabben
  5.  * 
  6.  * Licensed under the terms of the GNU Lesser General Public License:
  7.  *  http://www.opensource.org/licenses/lgpl-license.php
  8.  * 
  9.  * For further information visit:
  10.  *  http://www.fckeditor.net/
  11.  * 
  12.  * "Support Open Source software. What about a donation today?"
  13.  * 
  14.  * File Name: commands.php
  15.  *  This is the File Manager Connector for PHP.
  16.  * 
  17.  * File Authors:
  18.  *  Frederico Caldeira Knabben (fredck@fckeditor.net)
  19.  */
  20. function GetFolders( $resourceType, $currentFolder )
  21. {
  22. // Map the virtual path to the local server path.
  23. $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
  24. // Array that will hold the folders names.
  25. $aFolders = array() ;
  26. $oCurrentFolder = opendir( $sServerDir ) ;
  27. while ( $sFile = readdir( $oCurrentFolder ) )
  28. {
  29. if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) )
  30. $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
  31. }
  32. closedir( $oCurrentFolder ) ;
  33. // Open the "Folders" node.
  34. echo "<Folders>" ;
  35. natcasesort( $aFolders ) ;
  36. foreach ( $aFolders as $sFolder )
  37. echo $sFolder ;
  38. // Close the "Folders" node.
  39. echo "</Folders>" ;
  40. }
  41. function GetFoldersAndFiles( $resourceType, $currentFolder )
  42. {
  43. // Map the virtual path to the local server path.
  44. $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
  45. // Arrays that will hold the folders and files names.
  46. $aFolders = array() ;
  47. $aFiles = array() ;
  48. $oCurrentFolder = opendir( $sServerDir ) ;
  49. while ( $sFile = readdir( $oCurrentFolder ) )
  50. {
  51. if ( $sFile != '.' && $sFile != '..' )
  52. {
  53. if ( is_dir( $sServerDir . $sFile ) )
  54. $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
  55. else
  56. {
  57. $iFileSize = filesize( $sServerDir . $sFile ) ;
  58. if ( $iFileSize > 0 )
  59. {
  60. $iFileSize = round( $iFileSize / 1024 ) ;
  61. if ( $iFileSize < 1 ) $iFileSize = 1 ;
  62. }
  63. $aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
  64. }
  65. }
  66. }
  67. // Send the folders
  68. natcasesort( $aFolders ) ;
  69. echo '<Folders>' ;
  70. foreach ( $aFolders as $sFolder )
  71. echo $sFolder ;
  72. echo '</Folders>' ;
  73. // Send the files
  74. natcasesort( $aFiles ) ;
  75. echo '<Files>' ;
  76. foreach ( $aFiles as $sFiles )
  77. echo $sFiles ;
  78. echo '</Files>' ;
  79. }
  80. function CreateFolder( $resourceType, $currentFolder )
  81. {
  82. $sErrorNumber = '0' ;
  83. $sErrorMsg = '' ;
  84. if ( isset( $_GET['NewFolderName'] ) )
  85. {
  86. $sNewFolderName = $_GET['NewFolderName'] ;
  87. if ( strpos( $sNewFolderName, '..' ) !== FALSE )
  88. $sErrorNumber = '102' ; // Invalid folder name.
  89. else
  90. {
  91. // Map the virtual path to the local server path of the current folder.
  92. $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
  93. if ( is_writable( $sServerDir ) )
  94. {
  95. $sServerDir .= $sNewFolderName ;
  96. $sErrorMsg = CreateServerFolder( $sServerDir ) ;
  97. switch ( $sErrorMsg )
  98. {
  99. case '' :
  100. $sErrorNumber = '0' ;
  101. break ;
  102. case 'Invalid argument' :
  103. case 'No such file or directory' :
  104. $sErrorNumber = '102' ; // Path too long.
  105. break ;
  106. default :
  107. $sErrorNumber = '110' ;
  108. break ;
  109. }
  110. }
  111. else
  112. $sErrorNumber = '103' ;
  113. }
  114. }
  115. else
  116. $sErrorNumber = '102' ;
  117. // Create the "Error" node.
  118. echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ;
  119. }
  120. function FileUpload( $resourceType, $currentFolder )
  121. {
  122. $sErrorNumber = '0' ;
  123. $sFileName = '' ;
  124. if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) )
  125. {
  126. global $Config ;
  127. $oFile = $_FILES['NewFile'] ;
  128. // Map the virtual path to the local server path.
  129. $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
  130. // Get the uploaded file name.
  131. $sFileName = $oFile['name'] ;
  132. // Replace dots in the name with underscores (only one dot can be there... security issue).
  133. if ( $Config['ForceSingleExtension'] )
  134. $sFileName = preg_replace( '/\.(?![^.]*$)/', '_', $sFileName ) ;
  135. $sOriginalFileName = $sFileName ;
  136. // Get the extension.
  137. $sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
  138. $sExtension = strtolower( $sExtension ) ;
  139. $arAllowed = $Config['AllowedExtensions'][$resourceType] ;
  140. $arDenied = $Config['DeniedExtensions'][$resourceType] ;
  141. if ( ( count($arAllowed) == 0 || in_array( $sExtension, $arAllowed ) ) && ( count($arDenied) == 0 || !in_array( $sExtension, $arDenied ) ) )
  142. {
  143. $iCounter = 0 ;
  144. while ( true )
  145. {
  146. $sFilePath = $sServerDir . $sFileName ;
  147. if ( is_file( $sFilePath ) )
  148. {
  149. $iCounter++ ;
  150. $sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
  151. $sErrorNumber = '201' ;
  152. }
  153. else
  154. {
  155. move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;
  156. if ( is_file( $sFilePath ) )
  157. {
  158. $oldumask = umask(0) ;
  159. chmod( $sFilePath, 0777 ) ;
  160. umask( $oldumask ) ;
  161. }
  162. break ;
  163. }
  164. }
  165. }
  166. else
  167. $sErrorNumber = '202' ;
  168. }
  169. else
  170. $sErrorNumber = '202' ;
  171. echo '<script type="text/javascript">' ;
  172. echo 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . str_replace( '"', '\"', $sFileName ) . '") ;' ;
  173. echo '</script>' ;
  174. exit ;
  175. }
  176. ?>