PageRenderTime 36ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/Quản lý website bán áo đồng phục PHP/lamao/tinyfck-0.16/filemanager/connectors/php/commands.php

https://gitlab.com/phamngsinh/baitaplon_sinhvien
PHP | 211 lines | 142 code | 39 blank | 30 comment | 29 complexity | 6eaf533844d47aa7c381a324f867b64b MD5 | raw file
  1. <?php
  2. /*
  3. * FCKeditor - The text editor for internet
  4. * Copyright (C) 2003-2005 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. $oFile = $_FILES['NewFile'] ;
  127. // Map the virtual path to the local server path.
  128. $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
  129. // Get the uploaded file name.
  130. $sFileName = $oFile['name'] ;
  131. $sOriginalFileName = $sFileName ;
  132. $sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
  133. $sExtension = strtolower( $sExtension ) ;
  134. global $Config ;
  135. $arAllowed = $Config['AllowedExtensions'][$resourceType] ;
  136. $arDenied = $Config['DeniedExtensions'][$resourceType] ;
  137. if ( ( count($arAllowed) == 0 || in_array( $sExtension, $arAllowed ) ) && ( count($arDenied) == 0 || !in_array( $sExtension, $arDenied ) ) )
  138. {
  139. $iCounter = 0 ;
  140. while ( true )
  141. {
  142. $sFilePath = $sServerDir . $sFileName ;
  143. if ( is_file( $sFilePath ) )
  144. {
  145. $iCounter++ ;
  146. $sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
  147. $sErrorNumber = '201' ;
  148. }
  149. else
  150. {
  151. move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;
  152. if ( is_file( $sFilePath ) )
  153. {
  154. $oldumask = umask(0) ;
  155. chmod( $sFilePath, 0777 ) ;
  156. umask( $oldumask ) ;
  157. }
  158. break ;
  159. }
  160. }
  161. }
  162. else
  163. $sErrorNumber = '202' ;
  164. }
  165. else
  166. $sErrorNumber = '202' ;
  167. echo '<script type="text/javascript">' ;
  168. echo 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . str_replace( '"', '\\"', $sFileName ) . '") ;' ;
  169. echo '</script>' ;
  170. exit ;
  171. }
  172. ?>