[ Index ] |
|
Code source de FCKeditor 2.4 |
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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 15:28:05 2007 | par Balluche grâce à PHPXref 0.7 |