Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 116 | Rev 126 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 116 Rev 118
Line 1... Line 1...
1
<?php
1
<?php
-
 
2
// declare(encoding='UTF-8');
-
 
3
/**
-
 
4
* Classe implémentant l'API d'eFlore Images pour le projet CEL.
-
 
5
*
-
 
6
* @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=EfloreApi01Images
-
 
7
*
-
 
8
* @package eFlore/services
-
 
9
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
-
 
10
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
-
 
11
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
-
 
12
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
-
 
13
* @version 1.0
-
 
14
* @copyright 1999-2011 Tela Botanica (accueil@tela-botanica.org)
-
 
15
*/
-
 
16
// TODO : Config et Outils sont des classes statiques qui doivent poser des pb pour les tests...
2
class Images {
17
class Images {
Line 3... Line 18...
3
 
18
 
4
	private $parametres = array();
19
	private $parametres = array();
5
	private $ressources = array();
20
	private $ressources = array();
Line 72... Line 87...
72
	private function verifierValeurParametreRetour() {
87
	private function verifierValeurParametreRetour() {
73
		return in_array($this->parametres['retour'], $this->formats_supportes);
88
		return in_array($this->parametres['retour'], $this->formats_supportes);
74
	}
89
	}
Line 75... Line 90...
75
 
90
 
76
	private function verifierValeurParametreFormat() {
91
	private function verifierValeurParametreFormat() {
77
		$formats = Outils::recupererTableauConfig('formatsImages');
92
		$formats = Outils::recupererTableauConfig('Images.formats');
78
		$ok = array_key_exists($this->parametres['retour.format'], $formats);
93
		$ok = array_key_exists($this->parametres['retour.format'], $formats);
79
		return $ok;
94
		return $ok;
Line 80... Line 95...
80
	}
95
	}
Line 136... Line 151...
136
	}
151
	}
Line 137... Line 152...
137
 
152
 
138
	private function recupererImageBinaire($id_image) {
153
	private function recupererImageBinaire($id_image) {
139
		$image = '';
154
		$image = '';
140
		$chemin = $this->obtenirCheminImage($id_image);
-
 
141
 
-
 
142
		if (file_exists($chemin)) {
155
		$chemin = $this->obtenirCheminImage($id_image);
143
			$image = file_get_contents($chemin);
156
		$image = file_get_contents($chemin);
144
		} else {
157
		if ($image === false) {
145
			$message = "L'image demandée est introuvable sur le serveur : $chemin";
158
			$message = "L'image demandée est introuvable sur le serveur : $chemin";
146
			$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
159
			$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
147
			throw new Exception($message, $code);
160
			throw new Exception($message, $code);
148
		}
161
		}
Line 162... Line 175...
162
	}
175
	}
Line 163... Line 176...
163
 
176
 
164
	private function convertirIdImageVersChemin($idImage) {
177
	private function convertirIdImageVersChemin($idImage) {
165
		$codeImage = $this->construireCodeImage($idImage);
178
		$codeImage = $this->construireCodeImage($idImage);
166
		list($dossierNiveau1, $dossierNiveau2, $idFichier, $format) = explode('_', $codeImage);
179
		list($dossierNiveau1, $dossierNiveau2, $idFichier, $format) = explode('_', $codeImage);
167
		$chemin_base = Config::get('chemin_images');
180
		$chemin_base = Config::get('Images.chemin');
168
		$chemin_sur_serveur = $chemin_base.'/'.$dossierNiveau1.'/'.$dossierNiveau2.'/'.$format;
181
		$chemin_sur_serveur = $chemin_base.'/'.$dossierNiveau1.'/'.$dossierNiveau2.'/'.$format;
169
		return $chemin_sur_serveur;
182
		return $chemin_sur_serveur;
Line 170... Line 183...
170
	}
183
	}