Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3921 → Rev 3922

/trunk/jrest/services/CelImageFormatO.php
88,6 → 88,30
}
 
private function envoyerImage($id, $image_binaire, $format, $methode) {
$gestion_formats_images = new ImageRecreation($this->config);
$dossier = $gestion_formats_images->obtenirDossierPourFormat($id, $format);
$nom_fichier = $gestion_formats_images->convertirIdBddVersNomFichier($id, $format);
 
$last_modified_time = filemtime($dossier.'/'.$nom_fichier);
// On génère l'ETAG faible
$etag = 'W/"' . md5($last_modified_time) . '"';
// On définit les bons headers
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $last_modified_time) . " GMT");
header('Cache-Control: public, max-age=604800'); // On peut ici changer la durée de validité du cache
header("Etag: $etag");
// On vérifie les headers envoyés dans la requête
if (
(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) === $last_modified_time) ||
(isset($_SERVER['HTTP_IF_NONE_MATCH']) && $etag === trim($_SERVER['HTTP_IF_NONE_MATCH']))
) {
// On renvoit une 304 si on n'a rien modifié depuis
header('HTTP/1.1 304 Not Modified');
exit();
}
 
if ($methode == self::METHODE_AFFICHAGE) {
header('Content-Type: image/jpeg');
} else {