Skip to content
Extraits de code Groupes Projets
Valider 099d52bc rédigé par kent1's avatar kent1
Parcourir les fichiers

Vérifier que l'image temporaire existe bien (créée par GD) avant de faire un...

Vérifier que l'image temporaire existe bien (créée par GD) avant de faire un getimagesize qui risque de renvoyer un warning

Si non, on renvoit false
parent a0c9e173
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -365,20 +365,22 @@ function _imagecreatefromgif($filename){ ...@@ -365,20 +365,22 @@ function _imagecreatefromgif($filename){
* @param string $fichier * @param string $fichier
* Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.png). * Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.png).
* @return bool * @return bool
* false si l'image créée a une largeur nulle ; * false si l'image créée a une largeur nulle ou n'existe pas ;
* true si une image est bien retournée. * true si une image est bien retournée.
*/ */
function _image_imagepng($img, $fichier) { function _image_imagepng($img, $fichier) {
if (!function_exists('imagepng')) return false; if (!function_exists('imagepng')) return false;
$tmp = $fichier.".tmp"; $tmp = $fichier.".tmp";
$ret = imagepng($img,$tmp); $ret = imagepng($img,$tmp);
if(file_exists($tmp)){
$taille_test = getimagesize($tmp);
if ($taille_test[0] < 1) return false;
$taille_test = getimagesize($tmp); spip_unlink($fichier); // le fichier peut deja exister
if ($taille_test[0] < 1) return false; @rename($tmp, $fichier);
return $ret;
spip_unlink($fichier); // le fichier peut deja exister }
@rename($tmp, $fichier); return false;
return $ret;
} }
/** /**
...@@ -390,21 +392,22 @@ function _image_imagepng($img, $fichier) { ...@@ -390,21 +392,22 @@ function _image_imagepng($img, $fichier) {
* @param string $fichier * @param string $fichier
* Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.gif). * Le path vers l'image (ex : local/cache-vignettes/L180xH51/image.gif).
* @return bool * @return bool
* false si l'image créée a une largeur nulle ; * false si l'image créée a une largeur nulle ou n'existe pas ;
* true si une image est bien retournée. * true si une image est bien retournée.
*/ */
function _image_imagegif($img,$fichier) { function _image_imagegif($img,$fichier) {
if (!function_exists('imagegif')) return false; if (!function_exists('imagegif')) return false;
$tmp = $fichier.".tmp"; $tmp = $fichier.".tmp";
$ret = imagegif($img,$tmp); $ret = imagegif($img,$tmp);
if(file_exists($tmp)){
$taille_test = getimagesize($tmp); $taille_test = getimagesize($tmp);
if ($taille_test[0] < 1) return false; if ($taille_test[0] < 1) return false;
spip_unlink($fichier); // le fichier peut deja exister
spip_unlink($fichier); // le fichier peut deja exister @rename($tmp, $fichier);
@rename($tmp, $fichier); return $ret;
return $ret; }
return false;
} }
/** /**
...@@ -421,7 +424,7 @@ function _image_imagegif($img,$fichier) { ...@@ -421,7 +424,7 @@ function _image_imagegif($img,$fichier) {
* valeur (85) de la constante _IMG_GD_QUALITE (modifiable depuis * valeur (85) de la constante _IMG_GD_QUALITE (modifiable depuis
* mes_options.php). * mes_options.php).
* @return bool * @return bool
* false si l'image créée a une largeur nulle ; * false si l'image créée a une largeur nulle ou n'existe pas ;
* true si une image est bien retournée. * true si une image est bien retournée.
*/ */
function _image_imagejpg($img,$fichier,$qualite=_IMG_GD_QUALITE) { function _image_imagejpg($img,$fichier,$qualite=_IMG_GD_QUALITE) {
...@@ -429,12 +432,15 @@ function _image_imagejpg($img,$fichier,$qualite=_IMG_GD_QUALITE) { ...@@ -429,12 +432,15 @@ function _image_imagejpg($img,$fichier,$qualite=_IMG_GD_QUALITE) {
$tmp = $fichier.".tmp"; $tmp = $fichier.".tmp";
$ret = imagejpeg($img,$tmp, $qualite); $ret = imagejpeg($img,$tmp, $qualite);
$taille_test = getimagesize($tmp); if(file_exists($tmp)){
if ($taille_test[0] < 1) return false; $taille_test = getimagesize($tmp);
if ($taille_test[0] < 1) return false;
spip_unlink($fichier); // le fichier peut deja exister spip_unlink($fichier); // le fichier peut deja exister
@rename($tmp, $fichier); @rename($tmp, $fichier);
return $ret; return $ret;
}
return false;
} }
/** /**
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter