diff --git a/vas/rest/class/vmlib/phpUtil.inc b/vas/rest/class/vmlib/phpUtil.inc index f2e26c8df32a92975a1f4fbea86b42afc095758f..79de3bfc992d991535ee5930ad5956799aab1eb4 100755 --- a/vas/rest/class/vmlib/phpUtil.inc +++ b/vas/rest/class/vmlib/phpUtil.inc @@ -282,8 +282,8 @@ function stripslashes_deep($aString) { // création du fichier si besoin if (!is_dir($sDestDir)){ if(!mkdir($sDestDir, 0777, true)){ - writeToErrorLog("Can't create directory " . $sDestDir); - return "Can't create directory " . $sDestDir; + writeToErrorLog('ERROR_CREATING_DIRECTORY ' . $sDestDir); + return 'ERROR_CREATING_DIRECTORY ' . $sDestDir; } } // Upload du fichier @@ -335,8 +335,8 @@ function stripslashes_deep($aString) { // création du fichier si besoin if (!is_dir($sDestDir)){ if(!mkdir($sDestDir, 0777, true)){ - writeToErrorLog("Can't create directory " . $sDestDir); - return "Can't create directory " . $sDestDir; + writeToErrorLog('ERROR_CREATING_DIRECTORY ' . $sDestDir); + return 'ERROR_CREATING_DIRECTORY ' . $sDestDir; } } // Upload du fichier @@ -388,8 +388,8 @@ function stripslashes_deep($aString) { // création du fichier si besoin if (!is_dir($sDestDir)){ if(!mkdir($sDestDir, 0777, true)){ - writeToErrorLog("Can't create directory " . $sDestDir); - return "Can't create directory " . $sDestDir; + writeToErrorLog('ERROR_CREATING_DIRECTORY ' . $sDestDir); + return 'ERROR_CREATING_DIRECTORY ' . $sDestDir; } } // Upload du fichier @@ -1386,7 +1386,7 @@ function getDatePattern($sUserDateFormat, $sDateType) { return $Pattern; } - /** + /** *This method copy a file in ws_data. *@file vmlib/phpUtil.inc *@param $sModule Name of the module. @@ -1397,13 +1397,13 @@ function getDatePattern($sUserDateFormat, $sDateType) { *@param $sNewFileName Name of the new file. *@return $sErrorMsg The error message. */ -function copyFileInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFileName, $sNewFileName) { +function copyFileInWsDataDir ($sModule, $sObject, $mId, $sField = '', $sFileName, $sNewFileName) { global $properties; $sErrorMsg = ''; $sDestDir = $properties['ws_data_dir'] . "/" . $sModule . "/" . $sObject . "/" . $mId; if(!empty($sField)) $sDestDir .= "/" . $sField; - if ($properties['fileS3Uploader']) { + if ($properties['fileS3Uploader'] === true) { require_once ("aws_sdk/aws-autoloader.php"); $s3 = new Aws\S3\S3Client(array( 'version'=>'latest', @@ -1423,11 +1423,16 @@ function copyFileInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFileName, if (strpos($sServerPath, '/') === 0) $sServerPath = substr($sServerPath, 1); // Copie du fichier. - $aResult = $s3->copyObject(array( - 'Bucket' => $sBucket, - 'Key' => $sServerPath . '/' . $sNewFileName, - 'CopySource' => $sBucket . '/' . $sServerPath . '/' . urlencode($sFileName) - )); + try { + $aResult = $s3->copyObject(array( + 'Bucket' => $sBucket, + 'Key' => $sServerPath . '/' . $sNewFileName, + 'CopySource' => $sBucket . '/' . $sServerPath . '/' . urlencode($sFileName) + )); + } + catch(Aws\S3\Exception\S3Exception $e) { + writeToErrorLog($e->getMessage()); + } } else { $sFilePath = $sDestDir . '/' . $sFileName; @@ -1489,11 +1494,12 @@ function createEmptyFileInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFi else { $sFilePath = $sDestDir . '/' . $sFileName; // Création du répertoire de destination si inexistant. - if (!file_exists($sDestDir)) + if (!file_exists($sDestDir)) { if (!mkdir($sDestDir, 0777, true)) { writeToErrorLog(ERROR_CREATING_DIRECTORY . $sDestDir); return ERROR_CREATING_DIRECTORY . $sDestDir; - } + } + } fclose(fopen($sFilePath, "w+")); } return $sErrorMsg; @@ -1543,11 +1549,14 @@ function deleteDirectoryInWsDataDir($sModule, $sObject, $mId, $sField = '', $sDi 'Prefix' => $sServerPath )); // Suppression de chaque fichier. - foreach($oAwsResult->get('Contents') as $aKey) { - $aResult = $s3->deleteObject(array( - 'Bucket' => $sBucket, - 'Key' => $aKey['Key'] - )); + $aKeys = $oAwsResult->get('Contents'); + if (is_array($aKeys)) { + foreach($aKeys as $aKey) { + $aResult = $s3->deleteObject(array( + 'Bucket' => $sBucket, + 'Key' => $aKey['Key'] + )); + } } } catch(Aws\S3\Exception\S3Exception $e) { @@ -1560,7 +1569,7 @@ function deleteDirectoryInWsDataDir($sModule, $sObject, $mId, $sField = '', $sDi if (is_dir($sDirectoryPath)) { if (!cleardir($sDirectoryPath)) { writeToErrorLog(ERROR_DELETING_DIRECTORY . $sDestDir); - return ERROR_DELETING_DIRECTORY . $sDestDir; + $sErrorMsg = ERROR_DELETING_DIRECTORY . $sDestDir; } } } @@ -1642,9 +1651,11 @@ function getFileContentInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFil *@param $sFileContent Data to write to the file. *@return $sErrorMsg The error message. */ -function putFileContentInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFileName, $sFileContent) { +function putFileContentInWsDataDir($sModule, $sObject, $mId = '', $sField = '', $sFileName, $sFileContent) { global $properties; - $sDestDir = $properties['ws_data_dir'] . "/" . $sModule . "/" . $sObject . "/" . $mId; + $sDestDir = $properties['ws_data_dir'] . "/" . $sModule . "/" . $sObject; + if(!empty($mId)) + $sDestDir .= "/" . $mId; if(!empty($sField)) $sDestDir .= "/" . $sField; if ($properties['fileS3Uploader'] === true) { @@ -1687,6 +1698,13 @@ function putFileContentInWsDataDir($sModule, $sObject, $mId, $sField = '', $sFil return false; } } + // Création du répertoire de destination si inexistant. + if (!file_exists($sDestDir)) { + if (!mkdir($sDestDir, 0777, true)) { + writeToErrorLog('ERROR_CREATING_DIRECTORY ' . $sDirPath); + return false; + } + } // Ecrit les données dans le fichier. if (file_put_contents($sFilePath, $sFileContent) === false) { writeToErrorLog(ERROR_WRITING_FILE_CONTENT . $sFilePath);