File_exists() Ne fonctionne pas

Résolu
abisko -  
 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

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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
abisko
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
où se trouve la page php sur l'ordi?
où se trouvent les images?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
abisko
 
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