32 function GetFolders($resourceType, $currentFolder)
35 $sServerDir = ServerMapFolder($resourceType, $currentFolder,
'GetFolders');
40 $oCurrentFolder = @opendir($sServerDir);
42 if ($oCurrentFolder !==
false)
44 while ($sFile = readdir($oCurrentFolder))
46 if ($sFile !=
'.' && $sFile !=
'..' && is_dir($sServerDir.$sFile))
47 $aFolders[] =
'<Folder name="'.ConvertToXmlAttribute($sFile).
'" />';
49 closedir($oCurrentFolder);
55 natcasesort($aFolders);
56 foreach ($aFolders as $sFolder)
70 function GetFoldersAndFiles($resourceType, $currentFolder)
73 $sServerDir = ServerMapFolder($resourceType, $currentFolder,
'GetFoldersAndFiles');
79 $oCurrentFolder = @opendir($sServerDir);
81 if ($oCurrentFolder !==
false)
83 while ($sFile = readdir($oCurrentFolder))
85 if ($sFile !=
'.' && $sFile !=
'..')
87 if (is_dir($sServerDir.$sFile))
88 $aFolders[] =
'<Folder name="'.ConvertToXmlAttribute($sFile).
'" />';
90 $iFileSize = @filesize($sServerDir.$sFile);
96 $iFileSize = round($iFileSize / 1024);
101 $aFiles[] =
'<File name="'.ConvertToXmlAttribute($sFile).
'" size="'.$iFileSize.
'" />';
105 closedir($oCurrentFolder);
109 natcasesort($aFolders);
112 foreach ($aFolders as $sFolder)
118 natcasesort($aFiles);
121 foreach ($aFiles as $sFiles)
134 function CreateFolder($resourceType, $currentFolder)
142 if (isset($_GET[
'NewFolderName']))
144 $sNewFolderName = $_GET[
'NewFolderName'];
145 $sNewFolderName = SanitizeFolderName($sNewFolderName);
147 if (strpos($sNewFolderName,
'..') !==
false)
148 $sErrorNumber =
'102';
151 $sServerDir = ServerMapFolder($resourceType, $currentFolder,
'CreateFolder');
153 if (is_writable($sServerDir))
155 $sServerDir .= $sNewFolderName;
157 $sErrorMsg = CreateServerFolder($sServerDir);
164 case 'Invalid argument' :
165 case 'No such file or directory' :
166 $sErrorNumber =
'102';
169 $sErrorNumber =
'110';
172 }
else $sErrorNumber =
'103';
174 }
else $sErrorNumber =
'102';
177 echo
'<Error number="'.$sErrorNumber.
'" />';
191 function FileUpload($resourceType, $currentFolder, $sCommand, $CKEcallback =
'')
193 if (!isset($_FILES)) {
199 if (isset($_FILES[
'NewFile']) && !is_null($_FILES[
'NewFile'][
'tmp_name'])
201 or (isset($_FILES[
'upload']) && !is_null($_FILES[
'upload'][
'tmp_name'])))
205 $oFile = isset($_FILES[
'NewFile']) ? $_FILES[
'NewFile'] : $_FILES[
'upload'];
208 $sServerDir = ServerMapFolder($resourceType, $currentFolder, $sCommand);
211 $sFileName = $oFile[
'name'];
212 $sFileName = SanitizeFileName($sFileName);
214 $sOriginalFileName = $sFileName;
217 $sExtension = substr($sFileName, (strrpos($sFileName,
'.') + 1));
218 $sExtension = strtolower($sExtension);
220 if (isset($Config[
'SecureImageUploads']))
222 if (($isImageValid = IsImageValid($oFile[
'tmp_name'], $sExtension)) ===
false)
224 $sErrorNumber =
'202';
228 if (isset($Config[
'HtmlExtensions']))
230 if (!IsHtmlExtension($sExtension, $Config[
'HtmlExtensions']) &&
231 ($detectHtml = DetectHtml($oFile[
'tmp_name'])) ===
true)
233 $sErrorNumber =
'202';
238 if (!$sErrorNumber && IsAllowedExt($sExtension, $resourceType))
244 $sFilePath = $sServerDir.$sFileName;
246 if (is_file($sFilePath))
249 $sFileName = RemoveExtension($sOriginalFileName).
'('.$iCounter.
').'.$sExtension;
250 $sErrorNumber =
'201';
252 move_uploaded_file($oFile[
'tmp_name'], $sFilePath);
254 if (is_file($sFilePath))
256 if (isset($Config[
'ChmodOnUpload']) && !$Config[
'ChmodOnUpload'])
261 $permissions =
'0777';
262 if (isset($Config[
'ChmodOnUpload']) && $Config[
'ChmodOnUpload'])
264 $permissions = (string) $Config[
'ChmodOnUpload'];
266 $permissionsdec = octdec($permissions);
267 dol_syslog(
"commands.php permission = ".$permissions.
" ".$permissionsdec.
" ".decoct($permissionsdec));
268 $oldumask = umask(0);
269 chmod($sFilePath, $permissionsdec);
277 if (file_exists($sFilePath))
280 if (isset($isImageValid) && $isImageValid === -1 && IsImageValid($sFilePath, $sExtension) ===
false)
283 $sErrorNumber =
'202';
284 } elseif (isset($detectHtml) && $detectHtml === -1 && DetectHtml($sFilePath) ===
true)
287 $sErrorNumber =
'202';
290 }
else $sErrorNumber =
'202';
291 }
else $sErrorNumber =
'202';
294 $sFileUrl = CombinePaths(GetResourceTypePath($resourceType, $sCommand), $currentFolder);
295 $sFileUrl = CombinePaths($sFileUrl, $sFileName);
300 if ($CKEcallback ==
'')
303 SendUploadResults($sErrorNumber, $sFileUrl, $sFileName);
309 ($sErrorNumber != 0 ?
'Error '.$sErrorNumber.
' upload failed.' :
'Upload Successful')
This class is used to manage file upload using ajax.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename= '', $restricttologhandler= '', $logcontext=null)
Write log message into outputs.