Page 1 sur 1

condition : si un fichier existe :)

Posté : 28 janv. 2010, 16:02
par graffx
Salut à tous!

Voila, je suis bloqué, je me suis fait un systeme admin qui permet d' ajouter une image, qui sera ensuite redimensionnée avec le script suivant.

Le hic est que si je ne met pas de photo, j' ai un warning qui dit

Warning: getimagesize(../themes/gris/images/articles/miniatures/1264679672_) [function.getimagesize]: failed to open stream: No such file or directory in /home/weboutix/www/admin/ajout5.php on line 205


Ce qui est normal, il va chercher la taille d' une image qui n' existe pas. Je voudrai donc faire en sorte que si je n' ajoute pas d' image, ce code ne s' execute pas, voici tout d' abord le code tel quel, il marche trés bien si j' ai ajouté une image:
<?php



$file = '../themes/'.$config['theme'].'/images/articles/miniatures/'.$fichier.'' ; # L'emplacement de l'image &agrave; redimensionner. L'image peut &ecirc;tre de type jpeg, gif ou png

$x = 100;

$y = 100; # Taille en pixel de l'image redimensionn&eacute;e



$size = getimagesize($file);

if ( $size) {


if ($size['mime']=='image/jpeg' ) {
$img_big = imagecreatefromjpeg($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# cr&eacute;ation de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or   $img_mini = imagecreate($x, $y);

// copie de l'image, avec le redimensionnement.
imagecopyresampled($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

imagejpeg($img_mini,$file );

}
elseif ($size['mime']=='image/png' ) {
$img_big = imagecreatefrompng($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# cr&eacute;ation de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or   $img_mini = imagecreate($x, $y);

// copie de l'image, avec le redimensionnement.
imagecopyresampled($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

imagepng($img_mini,$file );

}
elseif ($size['mime']=='image/gif' ) {
$img_big = imagecreatefromgif($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# cr&eacute;ation de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or   $img_mini = imagecreate($x, $y);

// copie de l'image, avec le redimensionnement.
imagecopyresampled($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

imagegif($img_mini,$file );

}
}
?>

J' ai bien essayé avec un

if(isset($fichier))
{

//le code plus haut

}
?>


Mais ca ne change rien, j' ai toujours l' erreur.

Quelqu' un pourrait -il m' aider svp?


Merci d' avance

Re: comment faire?

Posté : 28 janv. 2010, 16:13
par stealth35
http://fr2.php.net/manual/fr/function.file-exists.php

par contre, édite le titre de ton post c'est un peu vaste...

Re: comment faire?

Posté : 28 janv. 2010, 16:27
par jojolapine
Bonjour,
Au lieu d'utiliser la fonction isset() qui sert à vérifier l'existence d'une variable, utilise is_file() ou file_exists()
;)

Re: comment faire?

Posté : 28 janv. 2010, 16:51
par graffx
Merci a vous deux, je ne connaissais pas, je met en resolu parce que je sais que ca marchera, merci a vous deux *bizzzz*

:)