32 function GetFolders($resourceType, $currentFolder)
35 $sServerDir = ServerMapFolder($resourceType, $currentFolder,
'GetFolders');
40 $oCurrentFolder = @opendir($sServerDir);
42 if ($oCurrentFolder !==
false) {
43 while ($sFile = readdir($oCurrentFolder)) {
44 if ($sFile !=
'.' && $sFile !=
'..' && is_dir($sServerDir.$sFile)) {
45 $aFolders[] =
'<Folder name="'.ConvertToXmlAttribute($sFile).
'" />';
48 closedir($oCurrentFolder);
54 natcasesort($aFolders);
55 foreach ($aFolders as $sFolder) {
70 function GetFoldersAndFiles($resourceType, $currentFolder)
73 $sServerDir = ServerMapFolder($resourceType, $currentFolder,
'GetFoldersAndFiles');
79 $oCurrentFolder = @opendir($sServerDir);
81 if ($oCurrentFolder !==
false) {
82 while ($sFile = readdir($oCurrentFolder)) {
83 if ($sFile !=
'.' && $sFile !=
'..') {
84 if (is_dir($sServerDir.$sFile)) {
85 $aFolders[] =
'<Folder name="'.ConvertToXmlAttribute($sFile).
'" />';
87 $iFileSize = @filesize($sServerDir.$sFile);
92 $iFileSize = round($iFileSize / 1024);
98 $aFiles[] =
'<File name="'.ConvertToXmlAttribute($sFile).
'" size="'.$iFileSize.
'" />';
102 closedir($oCurrentFolder);
106 natcasesort($aFolders);
109 foreach ($aFolders as $sFolder) {
116 natcasesort($aFiles);
119 foreach ($aFiles as $sFiles) {
133 function CreateFolder($resourceType, $currentFolder)
141 if (isset($_GET[
'NewFolderName'])) {
142 $sNewFolderName = $_GET[
'NewFolderName'];
143 $sNewFolderName = SanitizeFolderName($sNewFolderName);
145 if (strpos($sNewFolderName,
'..') !==
false) {
146 $sErrorNumber =
'102';
149 $sServerDir = ServerMapFolder($resourceType, $currentFolder,
'CreateFolder');
151 if (is_writable($sServerDir)) {
152 $sServerDir .= $sNewFolderName;
154 $sErrorMsg = CreateServerFolder($sServerDir);
156 switch ($sErrorMsg) {
160 case 'Invalid argument':
161 case 'No such file or directory':
162 $sErrorNumber =
'102';
165 $sErrorNumber =
'110';
169 $sErrorNumber =
'103';
173 $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']))) {
204 $oFile = isset($_FILES[
'NewFile']) ? $_FILES[
'NewFile'] : $_FILES[
'upload'];
210 $sServerDir = ServerMapFolder($resourceType, $currentFolder, $sCommand);
213 $sFileName = $oFile[
'name'];
218 $sOriginalFileName = $sFileName;
221 $sExtension = substr($sFileName, (strrpos($sFileName,
'.') + 1));
222 $sExtension = strtolower($sExtension);
241 include_once DOL_DOCUMENT_ROOT.
'/core/lib/images.lib.php';
244 if (!$isImageValid) {
245 $sErrorNumber =
'202';
250 if (!$sErrorNumber) {
251 if (IsAllowedExt($sExtension, $resourceType)) {
255 $sFilePath = $sServerDir.$sFileName;
257 if (is_file($sFilePath)) {
259 $sFileName = RemoveExtension($sOriginalFileName).
'('.$iCounter.
').'.$sExtension;
260 $sErrorNumber =
'201';
262 include_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
265 if (is_file($sFilePath)) {
266 if (isset($Config[
'ChmodOnUpload']) && !$Config[
'ChmodOnUpload']) {
270 $permissions =
'0777';
271 if (isset($Config[
'ChmodOnUpload']) && $Config[
'ChmodOnUpload']) {
272 $permissions = (string) $Config[
'ChmodOnUpload'];
274 $permissionsdec = octdec($permissions);
275 dol_syslog(
"commands.php permission = ".$permissions.
" ".$permissionsdec.
" ".decoct($permissionsdec));
276 $oldumask = umask(0);
277 chmod($sFilePath, $permissionsdec);
285 if (file_exists($sFilePath)) {
287 if (isset($isImageValid) && $isImageValid === -1 && IsImageValid($sFilePath, $sExtension) ===
false) {
288 dol_syslog(
"commands.php IsImageValid is ko");
290 $sErrorNumber =
'202';
291 } elseif (isset($detectHtml) && $detectHtml === -1 && DetectHtml($sFilePath) ===
true) {
294 $sErrorNumber =
'202';
298 $sErrorNumber =
'202';
302 $sErrorNumber =
'203';
306 $sFileUrl = CombinePaths(GetResourceTypePath($resourceType, $sCommand), $currentFolder);
307 $sFileUrl = CombinePaths($sFileUrl, $sFileName);
312 if ($CKEcallback ==
'') {
314 SendUploadResults($sErrorNumber, $sFileUrl, $sFileName);
320 ($sErrorNumber != 0 ?
'Error '.$sErrorNumber.
' upload failed.' :
'Upload Successful')