Page 1 sur 1

Savoir si une image existe

Posté : 29 août 2006, 10:47
par randoo
Bonjour,

Je voudrais savoir si une image existe avant de l'afficher.

J'ai essayer avec le fonction file_exists(); mais apparament, l'herbergeur chez qui je suis à bloquer avec le safe_mod et je ne peux pas l'utiliser pour les images.

Pourriez vous me dire comment je peux faire.

Merci d'avance pour votre réponse.

A+
Guillaume

Posté : 29 août 2006, 10:59
par Ryle
Tu peux essayer avec is_file() à la place, celui là ne sera peut être pas bloqué :)

Posté : 29 août 2006, 15:04
par randoo
Re bonjour,

Je te remercie pour la rémponse, je viens d'essayer ce code ci-dessous, et celà me retourne que le fichier n'existe pas, or il existe.
<?php
$filename = 'http://www.jeudi8h.com/images/produit/mv2-technaxx_small.JPG';

if (is_file($filename))
{
   print "Le fichier $filename existe";
} else {
   print "Le fichier $filename n'existe pas";
}
?>
Une autre idée peut-être.

A+
Guillaume

Posté : 29 août 2006, 15:12
par Ultim4T0m
Peut-être qu'en mettant l'adresse comme ceci cela fonctionnera...
$filename = '/images/produit/mv2-technaxx_small.JPG';
Mais bon, à vrai dire j'en sais rien ^^'

Posté : 29 août 2006, 15:17
par Cyrano
J'ai un drôle de doute les copains : sur un système Linux, en mettant "/images/produit/mv2-technaxx_small.JPG", l'application va chercher un répertoire nommé "image" à la racine du disque dur... enfin me semble. D'autre part, selon la configuration, sous Windows, ça peut ne pas marcher non plus puisque ça va chercher un répertoire "images" à la racine du serveur, donc en général du répertoire "www".

Si vous voulez mettre un chemin relatif qui marche partout et à tous les coups, il faudrait mettre : "./images/produit/mv2-technaxx_small.JPG" et là on est en relatif par rapport à la page qui s'exécute.

Posté : 29 août 2006, 15:37
par Ryle
Normalement, is_file() et file_exists() sont fait pour fonctionner sur des fichiers locaux et tu devrais donc normalement utiliser un chemin relatif (ou absolu, mais bon c'est pas top, il vaut mieux éviter les "/..." et "C:\..." ) par rapport au système de fichier.
(Je crois que les url fonctionnent à partir de php5, mais je n'en suis pas sur)

Pour le "./" c'est effectivement ce qu'il y a de plus sur pour construire un chemin relatif, bien qu'il ne soit pas nécessaire car considéré comme valeur par défaut (forcément :)

"./dir" revient au même que "dir"
"./../dir" revient au même que "../dir"
"/dir" en revanche équivaut à un "C:\dir" et sont des chemins absolus partant de la racine du système.

(Le comportement est différent en html ou l'on ne travail pas sur le système de fichier, mais sur les url, le "/" correspondant alors à la racine du domaine :))

Posté : 29 août 2006, 16:22
par randoo
Je vous remercie pour vos réponses. En effet, il ne faut pas mettre l'adresse url mais l'adresse relative.

Bonne continuation et à une prochaine.

A+
Guillaume