diff --git a/vas/rest/class/vmlib/phpUtil.inc b/vas/rest/class/vmlib/phpUtil.inc index 7c1db3254acaf862890e43a0e405dd135917c53e..3d4bcb04cb3dedb23be91097f68d0bf9c698da89 100755 --- a/vas/rest/class/vmlib/phpUtil.inc +++ b/vas/rest/class/vmlib/phpUtil.inc @@ -151,7 +151,7 @@ function stripslashes_deep($aString) { } $sServerPath = str_replace($properties["vas_home"], $sPrefix , $sServerPath); - + // Suppression du slash de début de ligne (sinon création d'un répertoire vide sur S3). if (strpos($sServerPath, '/') === 0) $sServerPath = substr($sServerPath, 1); @@ -168,7 +168,7 @@ function stripslashes_deep($aString) { $sErrorMsg = ERROR_COPYING_FILE . $aFileValues['name'] . ON_SERVER_PHPUTIL . '.'; } unlink($sTmpFile); - $sErrorMsg = $sServerPath; + //$sErrorMsg = $sServerPath; //chmod($sServerPath,755); } } else { @@ -470,7 +470,7 @@ function stripslashes_deep($aString) { return unlink($sFilePath); } } - + /** *This method upload a file in ws_data. *@file vmlib/phpUtil.inc @@ -1845,154 +1845,154 @@ function getFileUrlInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFileNam } } } - -/** - *This method allow to upload a file on the local server. - *@file vmlib/phpUtil.inc - *@param $sNomObjet Name of the object. - *@param $sFileType Type of file needed. - *@param $sServerPath New path of the file. - *@param $sMaxSize Maximal size of the file. - *@return $sErrorMsg The error message. - */ + +/** + *This method allow to upload a file on the local server. + *@file vmlib/phpUtil.inc + *@param $sNomObjet Name of the object. + *@param $sFileType Type of file needed. + *@param $sServerPath New path of the file. + *@param $sMaxSize Maximal size of the file. + *@return $sErrorMsg The error message. + */ function uploadFileToLocal($sNomObjet, $sFileType, $sServerPath, $sMaxSize) { - global $properties, $sFolderLib; - loadLang($sFolderLib, $properties["language"], $sFolderLib . "/"); - $aExtensionPicture = array('gif', 'jpg', 'jpeg', 'png'); - $aExtensionPictureAndPdf = array('gif', 'jpg', 'jpeg', 'png', 'pdf'); - $aExtensionFile = array('pdf', 'gif', 'jpg', 'jpeg', 'png', 'txt'); - $aExtensionZip = array('zip', 'gex'); - $aExtensionFmw = array('fmw'); - $aForbiddenExtension = explode('|', str_replace("*.", "", $properties['forbidden_extension'])); - $sTmpFile = $_FILES[$sNomObjet]['tmp_name']; - // Si l'utilisateur n'a indiqué aucun fichier à uploader, il ne se passe rien - $sErrorMsg = ""; - - if ($sTmpFile == '') { - if ($_FILES[$sNomObjet]['name'] != "") { - switch ($_FILES[$sNomObjet]['error']) { - case "1" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_UPLOAD_MAX_FILE_SIZE; - break; - case "2" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_MAX_FILE_SIZE; - break; - case "3" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_PARTIAL_DOWNLOAD; - break; - case "4" : - $sErrorMsg = ERROR_NO_FILE_DOWNLOADED; - break; - case "6" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_MISSING_TEMP_FOLDER; - break; - case "7" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_WRITING_DISK; - break; - case "8" : - $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_PHP_EXT_SEND; - break; - } - writeToErrorLog($sErrorMsg); - } - return $sErrorMsg; - } - $aTemp = explode("\\", $sServerPath); - if (is_uploaded_file($sTmpFile)) { - if (!in_array(extension($aTemp[count($aTemp) - 1]), $aForbiddenExtension)) { - //Teste si le fichier correspont au format voulu. - $bAllowUpload = false; - $sFormat = ""; - switch ($sFileType) { - case "image" : - if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionPicture)) { - $bAllowUpload = true; - } else { - foreach ($aExtensionPicture as $sValue) { - $sFormat .= " " . $sValue; - } - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - break; - case "image-pdf" : - if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionPictureAndPdf)) { - $bAllowUpload = true; - } else { - foreach ($aExtensionPictureAndPdf as $sValue) { - $sFormat .= " " . $sValue; - } - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - break; - case "document" : - if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionFile)) { - $bAllowUpload = true; - } else { - foreach ($aExtensionFile as $sValue) { - $sFormat .= " " . $sValue; - } - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - break; - case "zip" : - if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionZip)) { - $bAllowUpload = true; - } else { - foreach ($aExtensionZip as $sValue) { - $sFormat .= " " . $sValue; - } - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - break; - case "fmw" : - if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionFmw)) { - $bAllowUpload = true; - } else { - foreach ($aExtensionFmw as $sValue) { - $sFormat .= " " . $sValue; - } - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - break; - default : - - $bAllowUpload = true; - - break; - } - - //Teste si le fichier n'est pas de trop grande taille. - if ($_FILES[$sNomObjet]['size'] > $sMaxSize || $_FILES[$sNomObjet]['error'] == 1) { - $bAllowUpload = false; - if ($_FILES[$sNomObjet]['size'] > $sMaxSize) - $sErrorMsg .= FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . OF_LABEL_PHPUTIL . $_FILES[$sNomObjet]['size'] . ERROR_EXCEED_MAX_SIZE . ' (' . $sMaxSize . LABEL_BYTES_PHPUTIL . ').'; - if ($_FILES[$sNomObjet]['error'] > $sMaxSize) - $sErrorMsg .= FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_EXCEED_MAX_SIZE_PHP . ' (' . $sMaxSize . LABEL_BYTES_PHPUTIL . ').'; - } - //Lance l'upload. - if ($bAllowUpload) { - if (!copy($sTmpFile, $sServerPath)) { - writeToErrorLog(ERROR_COPYING_FILE . $_FILES[$sNomObjet]['name'] . ON_SERVER_PHPUTIL . ', ' . $sTmpFile . ', ' . $sServerPath); - $sErrorMsg = ERROR_COPYING_FILE . $_FILES[$sNomObjet]['name'] . ON_SERVER_PHPUTIL . '.'; - } - unlink($sTmpFile); - //chmod($sServerPath,755); - } - } else { - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; - } - } else { - writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_DOWNLOAD_SERVER); - $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_DOWNLOAD_SERVER . ' (' . ERROR_CODE_PHPUTIL . $_FILES[$sNomObjet]['error'] . ').'; - } - - return $sErrorMsg; + global $properties, $sFolderLib; + loadLang($sFolderLib, $properties["language"], $sFolderLib . "/"); + $aExtensionPicture = array('gif', 'jpg', 'jpeg', 'png'); + $aExtensionPictureAndPdf = array('gif', 'jpg', 'jpeg', 'png', 'pdf'); + $aExtensionFile = array('pdf', 'gif', 'jpg', 'jpeg', 'png', 'txt'); + $aExtensionZip = array('zip', 'gex'); + $aExtensionFmw = array('fmw'); + $aForbiddenExtension = explode('|', str_replace("*.", "", $properties['forbidden_extension'])); + $sTmpFile = $_FILES[$sNomObjet]['tmp_name']; + // Si l'utilisateur n'a indiqué aucun fichier à uploader, il ne se passe rien + $sErrorMsg = ""; + + if ($sTmpFile == '') { + if ($_FILES[$sNomObjet]['name'] != "") { + switch ($_FILES[$sNomObjet]['error']) { + case "1" : + $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_UPLOAD_MAX_FILE_SIZE; + break; + case "2" : + $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_MAX_FILE_SIZE; + break; + case "3" : + $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_PARTIAL_DOWNLOAD; + break; + case "4" : + $sErrorMsg = ERROR_NO_FILE_DOWNLOADED; + break; + case "6" : + $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_MISSING_TEMP_FOLDER; + break; + case "7" : + $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_WRITING_DISK; + break; + case "8" : + $sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_PHP_EXT_SEND; + break; + } + writeToErrorLog($sErrorMsg); + } + return $sErrorMsg; + } + $aTemp = explode("\\", $sServerPath); + if (is_uploaded_file($sTmpFile)) { + if (!in_array(extension($aTemp[count($aTemp) - 1]), $aForbiddenExtension)) { + //Teste si le fichier correspont au format voulu. + $bAllowUpload = false; + $sFormat = ""; + switch ($sFileType) { + case "image" : + if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionPicture)) { + $bAllowUpload = true; + } else { + foreach ($aExtensionPicture as $sValue) { + $sFormat .= " " . $sValue; + } + writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); + $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; + } + break; + case "image-pdf" : + if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionPictureAndPdf)) { + $bAllowUpload = true; + } else { + foreach ($aExtensionPictureAndPdf as $sValue) { + $sFormat .= " " . $sValue; + } + writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); + $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; + } + break; + case "document" : + if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionFile)) { + $bAllowUpload = true; + } else { + foreach ($aExtensionFile as $sValue) { + $sFormat .= " " . $sValue; + } + writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); + $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; + } + break; + case "zip" : + if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionZip)) { + $bAllowUpload = true; + } else { + foreach ($aExtensionZip as $sValue) { + $sFormat .= " " . $sValue; + } + writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); + $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; + } + break; + case "fmw" : + if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionFmw)) { + $bAllowUpload = true; + } else { + foreach ($aExtensionFmw as $sValue) { + $sFormat .= " " . $sValue; + } + writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); + $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; + } + break; + default : + + $bAllowUpload = true; + + break; + } + + //Teste si le fichier n'est pas de trop grande taille. + if ($_FILES[$sNomObjet]['size'] > $sMaxSize || $_FILES[$sNomObjet]['error'] == 1) { + $bAllowUpload = false; + if ($_FILES[$sNomObjet]['size'] > $sMaxSize) + $sErrorMsg .= FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . OF_LABEL_PHPUTIL . $_FILES[$sNomObjet]['size'] . ERROR_EXCEED_MAX_SIZE . ' (' . $sMaxSize . LABEL_BYTES_PHPUTIL . ').'; + if ($_FILES[$sNomObjet]['error'] > $sMaxSize) + $sErrorMsg .= FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_EXCEED_MAX_SIZE_PHP . ' (' . $sMaxSize . LABEL_BYTES_PHPUTIL . ').'; + } + //Lance l'upload. + if ($bAllowUpload) { + if (!copy($sTmpFile, $sServerPath)) { + writeToErrorLog(ERROR_COPYING_FILE . $_FILES[$sNomObjet]['name'] . ON_SERVER_PHPUTIL . ', ' . $sTmpFile . ', ' . $sServerPath); + $sErrorMsg = ERROR_COPYING_FILE . $_FILES[$sNomObjet]['name'] . ON_SERVER_PHPUTIL . '.'; + } + unlink($sTmpFile); + //chmod($sServerPath,755); + } + } else { + writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType); + $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.'; + } + } else { + writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_DOWNLOAD_SERVER); + $sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_DOWNLOAD_SERVER . ' (' . ERROR_CODE_PHPUTIL . $_FILES[$sNomObjet]['error'] . ').'; + } + + return $sErrorMsg; } /**