| [ Index ] |
PHP Cross Reference of Limb3 |
[Summary view] [Print] [Text view]
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 * This is the File Manager Connector for PHP. 23 */ 24 25 function GetFolders( $resourceType, $currentFolder ) 26 { 27 // Map the virtual path to the local server path. 28 $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; 29 30 // Array that will hold the folders names. 31 $aFolders = array() ; 32 33 $oCurrentFolder = opendir( $sServerDir ) ; 34 35 while ( $sFile = readdir( $oCurrentFolder ) ) 36 { 37 if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) ) 38 $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ; 39 } 40 41 closedir( $oCurrentFolder ) ; 42 43 // Open the "Folders" node. 44 echo "<Folders>" ; 45 46 natcasesort( $aFolders ) ; 47 foreach ( $aFolders as $sFolder ) 48 echo $sFolder ; 49 50 // Close the "Folders" node. 51 echo "</Folders>" ; 52 } 53 54 function GetFoldersAndFiles( $resourceType, $currentFolder ) 55 { 56 // Map the virtual path to the local server path. 57 $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; 58 59 // Arrays that will hold the folders and files names. 60 $aFolders = array() ; 61 $aFiles = array() ; 62 63 $oCurrentFolder = opendir( $sServerDir ) ; 64 65 while ( $sFile = readdir( $oCurrentFolder ) ) 66 { 67 if ( $sFile != '.' && $sFile != '..' ) 68 { 69 if ( is_dir( $sServerDir . $sFile ) ) 70 $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ; 71 else 72 { 73 $iFileSize = filesize( $sServerDir . $sFile ) ; 74 if ( $iFileSize > 0 ) 75 { 76 $iFileSize = round( $iFileSize / 1024 ) ; 77 if ( $iFileSize < 1 ) $iFileSize = 1 ; 78 } 79 80 $aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ; 81 } 82 } 83 } 84 85 // Send the folders 86 natcasesort( $aFolders ) ; 87 echo '<Folders>' ; 88 89 foreach ( $aFolders as $sFolder ) 90 echo $sFolder ; 91 92 echo '</Folders>' ; 93 94 // Send the files 95 natcasesort( $aFiles ) ; 96 echo '<Files>' ; 97 98 foreach ( $aFiles as $sFiles ) 99 echo $sFiles ; 100 101 echo '</Files>' ; 102 } 103 104 function CreateFolder( $resourceType, $currentFolder ) 105 { 106 $sErrorNumber = '0' ; 107 $sErrorMsg = '' ; 108 109 if ( isset( $_GET['NewFolderName'] ) ) 110 { 111 $sNewFolderName = $_GET['NewFolderName'] ; 112 113 if ( strpos( $sNewFolderName, '..' ) !== FALSE ) 114 $sErrorNumber = '102' ; // Invalid folder name. 115 else 116 { 117 // Map the virtual path to the local server path of the current folder. 118 $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; 119 120 if ( is_writable( $sServerDir ) ) 121 { 122 $sServerDir .= $sNewFolderName ; 123 124 $sErrorMsg = CreateServerFolder( $sServerDir ) ; 125 126 switch ( $sErrorMsg ) 127 { 128 case '' : 129 $sErrorNumber = '0' ; 130 break ; 131 case 'Invalid argument' : 132 case 'No such file or directory' : 133 $sErrorNumber = '102' ; // Path too long. 134 break ; 135 default : 136 $sErrorNumber = '110' ; 137 break ; 138 } 139 } 140 else 141 $sErrorNumber = '103' ; 142 } 143 } 144 else 145 $sErrorNumber = '102' ; 146 147 // Create the "Error" node. 148 echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ; 149 } 150 151 function FileUpload( $resourceType, $currentFolder ) 152 { 153 $sErrorNumber = '0' ; 154 $sFileName = '' ; 155 156 if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) ) 157 { 158 global $Config ; 159 160 $oFile = $_FILES['NewFile'] ; 161 162 // Map the virtual path to the local server path. 163 $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; 164 165 // Get the uploaded file name. 166 $sFileName = $oFile['name'] ; 167 168 // Replace dots in the name with underscores (only one dot can be there... security issue). 169 if ( $Config['ForceSingleExtension'] ) 170 $sFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sFileName ) ; 171 172 $sOriginalFileName = $sFileName ; 173 174 // Get the extension. 175 $sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ; 176 $sExtension = strtolower( $sExtension ) ; 177 178 $arAllowed = $Config['AllowedExtensions'][$resourceType] ; 179 $arDenied = $Config['DeniedExtensions'][$resourceType] ; 180 181 if ( ( count($arAllowed) == 0 || in_array( $sExtension, $arAllowed ) ) && ( count($arDenied) == 0 || !in_array( $sExtension, $arDenied ) ) ) 182 { 183 $iCounter = 0 ; 184 185 while ( true ) 186 { 187 $sFilePath = $sServerDir . $sFileName ; 188 189 if ( is_file( $sFilePath ) ) 190 { 191 $iCounter++ ; 192 $sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ; 193 $sErrorNumber = '201' ; 194 } 195 else 196 { 197 move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ; 198 199 if ( is_file( $sFilePath ) ) 200 { 201 $oldumask = umask(0) ; 202 chmod( $sFilePath, 0777 ) ; 203 umask( $oldumask ) ; 204 } 205 206 break ; 207 } 208 } 209 } 210 else 211 $sErrorNumber = '202' ; 212 } 213 else 214 $sErrorNumber = '202' ; 215 216 echo '<script type="text/javascript">' ; 217 echo 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . str_replace( '"', '\\"', $sFileName ) . '") ;' ; 218 echo '</script>' ; 219 220 exit ; 221 } 222 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed Oct 15 04:31:08 2008 | Cross-referenced by PHPXref 0.7 |