Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2083 Rev 2133
Line 92... Line 92...
92
		$nom_fichier = $this->convertirIdBddVersNomFichier($id, $format);
92
		$nom_fichier = $this->convertirIdBddVersNomFichier($id, $format);
93
		$chemin_image = $dossier.'/'.$nom_fichier;	
93
		$chemin_image = $dossier.'/'.$nom_fichier;	
Line 94... Line 94...
94
 
94
 
95
		$image = false;
95
		$image = false;
-
 
96
		if(!file_exists($chemin_image)) {
96
		if(!file_exists($chemin_image)) {
97
			$chemin_image_originale = $this->obtenirCheminImageOriginale($id);
97
			$infos_image_originale = $this->obtenirImageEtInfosPourChemin($this->obtenirCheminImageOriginale($id));
98
			$infos_image_originale = $this->obtenirImageEtInfosPourChemin($chemin_image_originale);
-
 
99
			if($infos_image_originale) {
-
 
100
				// le verrou est là dans le (rare) cas où l'image est déjà en train
-
 
101
				// d'être générée par le script de création des miniatures ou bien 
-
 
102
				// un autre instance de cette classe appelée par le web service
-
 
103
				$fp = fopen($chemin_image_originale, "r");
98
			if($infos_image_originale) {
104
				// si le fichier est verrouillé, flock attendra qu'il se libère 
-
 
105
				$verrou = flock($fp, LOCK_EX);
-
 
106
				if(!file_exists($chemin_image)) {
-
 
107
					// si le fichier a été locké alors l'image était en train d'être générée
99
				$debut = microtime();
108
					// et donc il n'est pas nécéssaire de la créer (d'où le 2eme test sur file exists)
100
				$this->creerEtStockerMiniatureFichierImageSelonFormat($id, $infos_image_originale, $format);
109
					$this->creerEtStockerMiniatureFichierImageSelonFormat($id, $infos_image_originale, $format);
-
 
110
				}
-
 
111
				$verrou = flock($fp, LOCK_UN);
101
				
112
				fclose($fp);
102
				$image = file_get_contents($chemin_image);
113
				$image = file_get_contents($chemin_image);
103
			}
114
			}
104
		} else {
115
		} else {
105
			$image = file_get_contents($chemin_image);
116
			$image = file_get_contents($chemin_image);
106
		}
-
 
107
		
117
		}
108
		return $image;
118
		return $image;
Line 109... Line 119...
109
	}
119
	}
110
 
120