File_exists() Ne fonctionne pas [Résolu]

Signaler
-
 abisko -
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

Messages postés
13215
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 novembre 2020
736
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.
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é!!
Messages postés
13215
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 novembre 2020
736
où se trouve la page php sur l'ordi?
où se trouvent les images?
Messages postés
30268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 novembre 2020
3 004
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
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!!!!