Rev 2131 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpclass CelImageFormat {private $config;private $formats = array('CRX2S','CRXS','CXS','CS','CRS','XS','S','M','L','XL','X2L','X3L','O');// Pas besoin d'étendre Cel ici, surtout que le constructeur// de la classe Cel instancie toujours une connexion à la bdd// dont on a pas besoin ici. Ceci évite de planter le service// quand la bdd est surchargée.public function __construct($config) {$this->config = $config;}/*** Méthode appelée avec une requête de type GET.*/public function getElement($params) {// suppression des 0 non significatifs à gauche$id = ltrim($params[0],'0');$format = isset($_GET['format']) ? $_GET['format'] : 'M';if($this->verifierParametres($id, $format)) {$gestion_formats_images = new ImageRecreation($this->config);$image_binaire = $gestion_formats_images->creerOuRenvoyerImage($params[0], $format);if($image_binaire) {header('Content-Type: image/jpeg');echo $image_binaire;exit;} else {header("HTTP/1.0 404 Not Found");echo 'Aucune image ne correspond à cet identifiant';}}}private function verifierParametres($id, $format) {$ok = true;$message = '';if(!is_numeric($id)) {$message .= "L'identifiant de format doit être un entier. ";$ok = false;}if(!in_array($format, $this->formats)) {$message .= "Le format d'image est inconnu, les formats acceptés sont ".implode(',', $this->formats).". ";$ok = false;}if(!empty($message)) {header("HTTP/1.0 400 Bad Request");echo $message;}return $ok;}}