Subversion Repositories eFlore/Applications.cel

Rev

Rev 2703 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2703 Rev 2705
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