File_exists() Ne fonctionne pas

Résolu/Fermé
abisko - Modifié le 21 oct. 2020 à 14:37
 abisko - 21 oct. 2020 à 17:27
Bonjour,

J'essais de texter l'existence de la photo de profil des membres de mon site avant de les afficher; cependant malgré un code qui me semble propre, file_exists() ne fonctionne pas correctement et retourne toujours false, et default.jpg est toujours affiché! Pourtant les images existent belle et bien sur le chemin indiqué.

voici mon code :

function DisplayAvatarImage( $memberType, $id_member ){

      $filename ='images/avatars/'.$memberType.$id_member.'.jpg';

       if ( !file_exists($filename) ) { 
             $filename ='images/avatars/default.jpg';
          }
        
    echo '<img class="col rounded p-0" src="'.$filename.'">';
}

while (  $resultat = $reponse->fetch() ) {
       //some codes.....

  DisplayAvatarImage( $resultat['memberType'], $resultat['id_member'] );

         //some codes.....
}


Les images sont sous la forme pm3.jpg avec "pm" = $memberType et "3" = $id_member.

Merci beaucoup

2 réponses

yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
21 oct. 2020 à 14:47
bonjour,
tu n'utilises pas correctement file_exists().
le chemin que tu donnes n'est pas l'endroit précis où se trouve le fichier sur le disque de l'ordinateur.
0
ah bon?
Pourtant lorsque je n'effectue pas de teste et affiche directement les image avec le chemin "$filename"; celles qui existent s'affiche bien correctement!!!

Et plus encore, j'ai déjà utilisé ce même chemin pour d'autre image en testant avec file_exists() et tout c'est bien passé!!
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
21 oct. 2020 à 14:56
où se trouve la page php sur l'ordi?
où se trouvent les images?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
21 oct. 2020 à 16:40
Bonjour,
Essaye de mettre un realpath sur le chemin vers ton image
https://www.php.net/manual/fr/function.realpath.php

Et regarde si ça retourne bien le vrai chemin
0
Oup.... Merci à tous!!! j'ai vu où se trouvais le problème grâce à vos suggestions.

En effet, j'effectuais mon test avec file_exists() depuis un autre fichier php via Ajax et non sur mon fichier index. Il me fallait donc ajouter "../" au début du chemin pour que le test fonctionne avec file_exists() depuis ajax.

Voici le code final qui fonctionne bien :

function DisplayAvatarImage($memberType, $id_member ){

		$filename ='../images/avatars/'.$memberType.$id_member.'.jpg';

		if ( !file_exists($filename) ) {	
					$filename ='images/avatars/default.jpg';
		}else{
				$filename ='images/avatars/'.$memberType.$id_member.'.jpg';
		}
	
		echo '<img class="col rounded p-0" src="'.$filename.'">';
}


while (  $resultat = $reponse->fetch() ) {
       //some codes.....

        DisplayAvatarImage( $resultat['memberType'], $resultat['id_member'] );

         //some codes.....
}



Encore Merci!!!!
0