[ Index ]
 

Code source de FCKeditor 2.4

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/editor/filemanager/browser/default/connectors/php/ -> commands.php (source)

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


Généré le : Sun Feb 25 15:28:05 2007 par Balluche grâce à PHPXref 0.7