condition : si un fichier existe :)

Eléphant du PHP | 299 Messages

28 janv. 2010, 16:02

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
Modifié en dernier par graffx le 28 janv. 2010, 16:52, modifié 1 fois.

ViPHP
ViPHP | 5462 Messages

28 janv. 2010, 16:13

http://fr2.php.net/manual/fr/function.file-exists.php

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

ViPHP
ViPHP | 3607 Messages

28 janv. 2010, 16:27

Bonjour,
Au lieu d'utiliser la fonction isset() qui sert à vérifier l'existence d'une variable, utilise is_file() ou file_exists()
;)

Eléphant du PHP | 299 Messages

28 janv. 2010, 16:51

Merci a vous deux, je ne connaissais pas, je met en resolu parce que je sais que ca marchera, merci a vous deux *bizzzz*

:)