Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 3915 Rev 3923
Line 86... Line 86...
86
		}
86
		}
87
		return $ok;
87
		return $ok;
88
	}
88
	}
Line 89... Line 89...
89
 
89
 
-
 
90
	private function envoyerImage($id, $image_binaire, $format, $methode) {
-
 
91
		$gestion_formats_images = new ImageRecreation($this->config);
-
 
92
		$dossier = $gestion_formats_images->obtenirDossierPourFormat($id, $format);
-
 
93
		$nom_fichier = $gestion_formats_images->convertirIdBddVersNomFichier($id, $format);
-
 
94
 
-
 
95
		$last_modified_time = filemtime($dossier.'/'.$nom_fichier);
-
 
96
		
-
 
97
		// On génère l'ETAG faible
-
 
98
		$etag = 'W/"' . md5($last_modified_time) . '"';
-
 
99
		
-
 
100
		// On définit les bons headers
-
 
101
		header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $last_modified_time) . " GMT");
-
 
102
		header('Cache-Control: public, max-age=604800'); // On peut ici changer la durée de validité du cache
-
 
103
		header("Etag: $etag");
-
 
104
		
-
 
105
		// On vérifie les headers envoyés dans la requête
-
 
106
		if (
-
 
107
		(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) === $last_modified_time) ||
-
 
108
		(isset($_SERVER['HTTP_IF_NONE_MATCH']) && $etag === trim($_SERVER['HTTP_IF_NONE_MATCH']))
-
 
109
		) {
-
 
110
			// On renvoit une 304 si on n'a rien modifié depuis
-
 
111
			header('HTTP/1.1 304 Not Modified');
-
 
112
			exit();
-
 
113
		}
90
	private function envoyerImage($id, $image_binaire, $format, $methode) {
114
 
91
		if ($methode == self::METHODE_AFFICHAGE) {
115
		if ($methode == self::METHODE_AFFICHAGE) {
92
			header('Content-Type: image/jpeg');
116
			header('Content-Type: image/jpeg');
93
		} else {
117
		} else {
94
			$this->envoyerHeadersTelechargement($id, $image_binaire, $format);
118
			$this->envoyerHeadersTelechargement($id, $image_binaire, $format);