diff --git a/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc b/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc index 598dfd49328471d439b778eb51b6c7883d74a1ca..45bd24da6628ff19170bce17975e4922c4142d08 100644 --- a/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc +++ b/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc @@ -259,6 +259,70 @@ class Files_manager{ return $aFileStruc; } + /** + * Upload la miniature du fichier si il s'agit l'image ou retourne false + * + * @param {array} $aFileStruct Structure du fichier + * @param {string} $sDestPath Répertoire de destination + * @param {string} $sField Champ en base de données + * @param {string} $sMinDestPath Répertoire de destination du fichier min + * @param {integer} $iMaxSize Taille maximale du fichier + * @return {boolean} true en cas de succes + */ + private function uploadImageThumbnail($aFileStruct, $sDestPath, $sField, $sMinDestPath, $iMaxSize = -1) { + + $aImgSize = getimagesize($aFileStruct['tmp_name']); + + // Si image + if(@is_array($aImgSize)){ + + $aThumbnailFileStruct = $aFileStruct; + $aThumbnailFileStruct["width"] = 200; + $aThumbnailFileStruct["height"] = 200; + + if (is_int($this->oProperties['filesystem_thumbnails_max_width']) && + is_int($this->oProperties['filesystem_thumbnails_max_height'])) { + + $imgWidth = $aImgSize[0]; + $imgHeight = $aImgSize[1]; + + // Redimentionne la largeur en conservant le ratio + if ($imgWidth > $this->oProperties['filesystem_thumbnails_max_width']) { + $imgHeight = round($imgHeight * $this->oProperties['filesystem_thumbnails_max_width'] / $imgWidth); + $imgWidth = $this->oProperties['filesystem_thumbnails_max_width']; + } + + // Redimentionne la hauteur en conservant le ratio + if ($imgHeight > $this->oProperties['filesystem_thumbnails_max_height']) { + $imgWidth = round($imgWidth * $this->oProperties['filesystem_thumbnails_max_height'] / $imgHeight); + $imgHeight = $this->oProperties['filesystem_thumbnails_max_height']; + } + + $aThumbnailFileStruct["height"] = $imgHeight; + $aThumbnailFileStruct["width"] = $imgWidth; + } + + $aThumbnailFileStruct['tmp_name'] = $aThumbnailFileStruct['tmp_name'] . '.min'; + $aDestPathExt = explode('.', $sDestPath); + + $aDestPathExt = explode('.', $sDestPath); + + // Ajoute .min sur la destination + array_splice($aDestPathExt, -1, 0, 'min'); + $sMinDestPath = implode('.', $aDestPathExt); + + // Copie le fichier dans tmp + copy($aFileStruct['tmp_name'], $aThumbnailFileStruct['tmp_name']); + + // Upload le fichier .min.jpg + $this->uploadFile($sField, "image", $sMinDestPath, $iMaxSize, $aThumbnailFileStruct); + + return true; + } else { + return false; + } + } + /** *This method upload a file in ws_data. *@param $sModule Name of the module. @@ -356,34 +420,7 @@ class Files_manager{ // Image miniature $sMinDestPath = null; if ($bCreateThumbnail === true && file_exists($aFileStruct['tmp_name'])) { - - // Si image - if(@is_array(getimagesize($aFileStruct['tmp_name']))){ - - $aThumbnailFileStruct = $aFileStruct; - $aThumbnailFileStruct["width"] = 200; - $aThumbnailFileStruct["height"] = 200; - - if (is_int($this->oProperties['filesystem_thumbnails_width'])) { - $aThumbnailFileStruct["width"] = $this->oProperties['filesystem_thumbnails_width']; - } - if (is_int($this->oProperties['filesystem_thumbnails_height'])) { - $aThumbnailFileStruct["height"] = $this->oProperties['filesystem_thumbnails_height']; - } - - $aThumbnailFileStruct['tmp_name'] = $aThumbnailFileStruct['tmp_name'] . '.min'; - $aDestPathExt = explode('.', $sDestPath); - - // Ajoute .min sur la destination - array_splice($aDestPathExt, -1, 0, 'min'); - $sMinDestPath = implode('.', $aDestPathExt); - - // Copie le fichier dans tmp - copy($aFileStruct['tmp_name'], $aThumbnailFileStruct['tmp_name']); - - // Upload le fichier .min.jpg - $this->uploadFile($sField, "image", $sMinDestPath, $iMaxSize, $aThumbnailFileStruct); - } + $this->uploadImageThumbnail($aFileStruct, $sDestPath, $sField, $sMinDestPath, $iMaxSize); } // Upload du fichier diff --git a/src/vitis/vas/rest/conf/properties_server.inc b/src/vitis/vas/rest/conf/properties_server.inc index 7eb115606d8fc4415dbf29a17ba9864d9322bda7..9b34fdadd7ae222fac65ec5f264f1377555cd898 100644 --- a/src/vitis/vas/rest/conf/properties_server.inc +++ b/src/vitis/vas/rest/conf/properties_server.inc @@ -49,8 +49,8 @@ $properties["notifierAccessKeyAccount"] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX $properties["notifierSecretKeyAccount"] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // utilisation de s3 pour remplacer le système de Fichier $properties['filesystem'] = 'fs'; // s3 -$properties['filesystem_thumbnails_width'] = 350; // taille des images .min.jpg -$properties['filesystem_thumbnails_height'] = 350; // taille des images .min.jpg +$properties['filesystem_thumbnails_max_width'] = 350; // taille maximale des images .min.jpg +$properties['filesystem_thumbnails_max_height'] = 350; // taille maximale des images .min.jpg $properties['AWSCredentialsFilePath'] = ""; // .../.aws/credentials $properties["fileS3UploaderProfil"] = ""; $properties["fileS3UploaderBucket"] = "";