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;
|
187 |
|
- |
|
188 |
if ($taux_compression < 100 && $this->mode == self::MODE_IMAGEMAGICK) {
|
196 |
if ($taux_compression < 100 && $this->mode == self::MODE_IMAGEMAGICK) {
|
- |
|
197 |
$ecritureOK = $this->ecrireImageSurDisqueAvecMeta($chemin_fichier, $taux_compression);
|
- |
|
198 |
}
|
- |
|
199 |
|
- |
|
200 |
if ($ecritureOK) {
|
- |
|
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);
|
Line 519... |
Line 533... |
519 |
$img->writeImage($chemin_image_a_stocker);
|
533 |
$img->writeImage($chemin_image_a_stocker);
|
- |
|
534 |
$img->destroy();
|
- |
|
535 |
|
- |
|
536 |
chmod($chemin_image_a_stocker, $this->droits);
|
- |
|
537 |
return true;
|
520 |
$img->destroy();
|
538 |
} catch (ImagickException $e) {
|
Line 521... |
Line 539... |
521 |
|
539 |
return false;
|
522 |
chmod($chemin_image_a_stocker, $this->droits);
|
540 |
}
|
523 |
}
|
541 |
}
|