Skip to content
Snippets Groups Projects
Commit 5abc6530 authored by Armand Bahi's avatar Armand Bahi
Browse files

Redimentionnement des images sans déformation

parent baf27eb6
Branches
Tags
No related merge requests found
......@@ -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
......
......@@ -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"] = "";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment