| Line 172... |
Line 172... |
| 172 |
* @return Ambigous <multitype:, boolean>|boolean
|
172 |
* @return Ambigous <multitype:, boolean>|boolean
|
| 173 |
*/
|
173 |
*/
|
| 174 |
public function stockerFichierOriginal($fichier, $id, $conserverFichiersTemporaires=false) {
|
174 |
public function stockerFichierOriginal($fichier, $id, $conserverFichiersTemporaires=false) {
|
| 175 |
$chemin_fichier_origine = is_array($fichier) ? $fichier['tmp_name'] : $fichier;
|
175 |
$chemin_fichier_origine = is_array($fichier) ? $fichier['tmp_name'] : $fichier;
|
| Line -... |
Line 176... |
| - |
|
176 |
|
| - |
|
177 |
$tailleFichierOrigine = filesize($chemin_fichier_origine);
|
| 176 |
|
178 |
|
| 177 |
$chemin_base_fichier = $this->creerSiNecessaireEtRenvoyerCheminStockageFichierPourIdEtFormat($id, 'O');
|
179 |
$chemin_base_fichier = $this->creerSiNecessaireEtRenvoyerCheminStockageFichierPourIdEtFormat($id, 'O');
|
| Line 178... |
Line 180... |
| 178 |
$nom_fichier = $this->convertirIdBddVersNomFichier($id, 'O');
|
180 |
$nom_fichier = $this->convertirIdBddVersNomFichier($id, 'O');
|
| Line 179... |
Line 181... |
| 179 |
|
181 |
|
| - |
|
182 |
$chemin_fichier = $chemin_base_fichier.'/'.$nom_fichier;
|
| - |
|
183 |
|
| - |
|
184 |
$deplacement_fichier = $this->stockerImageExterne($chemin_fichier_origine, $chemin_fichier, $conserverFichiersTemporaires);
|
| - |
|
185 |
if ($tailleFichierOrigine == 0) {
|
| - |
|
186 |
$erreur = 'ERREUR : fichier image original [' . $chemin_fichier . '] de taille nulle (0) \n' ;
|
| Line 180... |
Line 187... |
| 180 |
$chemin_fichier = $chemin_base_fichier.'/'.$nom_fichier;
|
187 |
$this->logger('CEL_bugs',$erreur);
|
| 181 |
|
188 |
return false;
|
| 182 |
$deplacement_fichier = $this->stockerImageExterne($chemin_fichier_origine, $chemin_fichier, $conserverFichiersTemporaires);
|
189 |
}
|
| Line -... |
Line 190... |
| - |
|
190 |
|
| 183 |
|
191 |
if ($deplacement_fichier) {
|
| 184 |
if ($deplacement_fichier) {
|
192 |
$infos_image_originale = $this->obtenirImageEtInfosPourChemin($chemin_fichier);
|
| 185 |
$infos_image_originale = $this->obtenirImageEtInfosPourChemin($chemin_fichier);
|
193 |
$taux_compression = $this->renvoyerTauxCompressionPourPoids($infos_image_originale['poids_octets']);
|
| Line -... |
Line 194... |
| - |
|
194 |
|
| 186 |
$taux_compression = $this->renvoyerTauxCompressionPourPoids($infos_image_originale['poids_octets']);
|
195 |
$ecritureOK = true;
|
| - |
|
196 |
if ($taux_compression < 100 && $this->mode == self::MODE_IMAGEMAGICK) {
|
| - |
|
197 |
$ecritureOK = $this->ecrireImageSurDisqueAvecMeta($chemin_fichier, $taux_compression);
|
| - |
|
198 |
}
|
| - |
|
199 |
|
| 187 |
|
200 |
if ($ecritureOK) {
|
| 188 |
if ($taux_compression < 100 && $this->mode == self::MODE_IMAGEMAGICK) {
|
201 |
return $infos_image_originale;
|
| 189 |
$this->ecrireImageSurDisqueAvecMeta($chemin_fichier, $taux_compression);
|
202 |
} else {
|
| 190 |
}
|
203 |
$erreur = 'ERREUR : probleme durant la recompression du fichier image original \n' ;
|
| 191 |
|
204 |
$this->logger('CEL_bugs',$erreur);
|
| 192 |
return $infos_image_originale;
|
205 |
return false ;
|
| 193 |
|
206 |
}
|
| Line 508... |
Line 521... |
| 508 |
imagejpeg($image_binaire, $chemin_sur_serveur_final.'/'.$nom_fichier, $compression);
|
521 |
imagejpeg($image_binaire, $chemin_sur_serveur_final.'/'.$nom_fichier, $compression);
|
| 509 |
chmod($chemin_sur_serveur_final.'/'.$nom_fichier,$this->droits);
|
522 |
chmod($chemin_sur_serveur_final.'/'.$nom_fichier,$this->droits);
|
| 510 |
}
|
523 |
}
|
| Line 511... |
Line 524... |
| 511 |
|
524 |
|
| - |
|
525 |
public function ecrireImageSurDisqueAvecMeta($chemin_image_a_stocker, $compression = 100) {
|
| 512 |
public function ecrireImageSurDisqueAvecMeta($chemin_image_a_stocker, $compression = 100) {
|
526 |
try {
|
| Line 513... |
Line 527... |
| 513 |
$img = new Imagick($chemin_image_a_stocker);
|
527 |
$img = new Imagick($chemin_image_a_stocker);
|
| 514 |
|
528 |
|
| 515 |
// l'utilisation d'image magick préserve les métadonnées lors d'une recompression
|
529 |
// l'utilisation d'image magick préserve les métadonnées lors d'une recompression
|
| 516 |
$img->setformat('jpeg');
|
530 |
$img->setformat('jpeg');
|
| 517 |
$img->setImageCompression(imagick::COMPRESSION_JPEG);
|
531 |
$img->setImageCompression(imagick::COMPRESSION_JPEG);
|
| 518 |
$img->setCompressionQuality($compression);
|
532 |
$img->setCompressionQuality($compression);
|
| 519 |
$img->writeImage($chemin_image_a_stocker);
|
533 |
$img->writeImage($chemin_image_a_stocker);
|
| 520 |
$img->destroy();
|
534 |
$img->destroy();
|
| - |
|
535 |
|
| - |
|
536 |
chmod($chemin_image_a_stocker, $this->droits);
|
| - |
|
537 |
return true;
|
| - |
|
538 |
} catch (ImagickException $e) {
|
| 521 |
|
539 |
return false;
|
| Line 522... |
Line 540... |
| 522 |
chmod($chemin_image_a_stocker, $this->droits);
|
540 |
}
|
| 523 |
}
|
541 |
}
|
| 524 |
|
542 |
|