Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2083 → Rev 2133

/trunk/jrest/lib/ImageRecreation.php
94,17 → 94,27
 
$image = false;
if(!file_exists($chemin_image)) {
$infos_image_originale = $this->obtenirImageEtInfosPourChemin($this->obtenirCheminImageOriginale($id));
$chemin_image_originale = $this->obtenirCheminImageOriginale($id);
$infos_image_originale = $this->obtenirImageEtInfosPourChemin($chemin_image_originale);
if($infos_image_originale) {
$debut = microtime();
$this->creerEtStockerMiniatureFichierImageSelonFormat($id, $infos_image_originale, $format);
// le verrou est là dans le (rare) cas où l'image est déjà en train
// d'être générée par le script de création des miniatures ou bien
// un autre instance de cette classe appelée par le web service
$fp = fopen($chemin_image_originale, "r");
// si le fichier est verrouillé, flock attendra qu'il se libère
$verrou = flock($fp, LOCK_EX);
if(!file_exists($chemin_image)) {
// si le fichier a été locké alors l'image était en train d'être générée
// et donc il n'est pas nécéssaire de la créer (d'où le 2eme test sur file exists)
$this->creerEtStockerMiniatureFichierImageSelonFormat($id, $infos_image_originale, $format);
}
$verrou = flock($fp, LOCK_UN);
fclose($fp);
$image = file_get_contents($chemin_image);
}
} else {
$image = file_get_contents($chemin_image);
}
return $image;
}