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(); |
// 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; |
} |
|