35,6 → 35,9 |
const MIME_MAP = "text/html"; |
const MIME_PNG = "image/png"; |
|
const METHODE_TELECHARGEMENT = "telecharger"; |
const METHODE_AFFICHAGE = "afficher"; |
|
private $ressources; |
private $parametres; |
|
43,6 → 46,7 |
private $sources = array(); |
private $format = 0; |
private $retour = self::MIME_MAP; |
private $methode_livraison = self::METHODE_AFFICHAGE; |
private $erreurs = array(); |
|
|
56,6 → 60,9 |
} else { |
$this->traiterParametres(); |
$resultat = $this->formerCarte(); |
if($this->methode_livraison == self::METHODE_TELECHARGEMENT) { |
$this->telechargerCarte($resultat->corps); |
} |
} |
return $resultat; |
} |
112,6 → 119,7 |
$this->verifierParametreSource(); |
$this->verifierParametreFormat(); |
$this->verifierParametreRetour(); |
$this->verifierParametreMethodeLivraison(); |
if (count($this->erreurs) > 0) { |
$this->renvoyerErreurs(); |
} |
140,6 → 148,16 |
} |
} |
|
private function verifierParametreMethodeLivraison() { |
$typesMethodeLivraison = array(self::METHODE_AFFICHAGE, self::METHODE_TELECHARGEMENT); |
if (isset($this->parametres['methode']) && !in_array($this->parametres['methode'], $typesMethodeLivraison)) { |
$this->erreurs[] = "Le format de methode de livraison ".$this->parametres['methode']." n'est pas acceptée par le service. ". |
" Seuls les methodes suivantes sont gérés : ".implode(',', $typesMethodeLivraison); |
} else { |
$this->methode_livraison = $this->parametres['methode']; |
} |
} |
|
private function verifierParametreSource() { |
$sourcesDisponibles = explode(',', trim(Config::get('sourcesDonnees'))); |
if (isset($this->parametres['source'])) { |
221,10 → 239,33 |
$resultat = new ResultatService(); |
$resultat->corps = $formateur->renvoyerCarte(); |
$resultat->mime = $this->retour; |
|
//echo '<pre>'.print_r($resultat,true).'</pre>';exit; |
|
return $resultat; |
} |
|
private function telechargerCarte($fichier) { |
if (function_exists('mb_strlen')) { |
$taille = mb_strlen($fichier, '8bit'); |
} else { |
$taille = strlen($fichier); |
} |
|
$extension = ($this->retour == "text/html") ? 'html' : 'png'; |
|
header('Content-Description: File Transfer'); |
header('Content-Type: application/octet-stream'); |
header('Content-Disposition: attachment; filename="carte.'.$extension.'"'); |
header('Content-Transfer-Encoding: binary'); |
header('Connection: Keep-Alive'); |
header('Expires: 0'); |
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); |
header('Pragma: public'); |
header('Content-Length: '.$taille); |
|
} |
|
} |
|
?> |