web-dev-qa-db-fra.com

vérifier si le fichier existe en php

if (!(file_exists(http://mysite.com/images/thumbnail_1286954822.jpg))) {   
$filefound = '0';                         
}

pourquoi ça ne marche pas?

32
anonymous
if (!file_exists('http://mysite.com/images/thumbnail_1286954822.jpg')) {   
$filefound = '0';                         
}
52
Haim Evgi
  1. La fonction attend une chaîne.

  2. file_exists() ne fonctionne pas correctement avec les URL HTTP.

29

file_exists vérifie si un fichier existe dans le chemin spécifié ou non.

Syntaxe:

file_exists ( string $filename )

Renvoie TRUE si le fichier ou le répertoire spécifié par filename existe; FALSE sinon.

$filename = BASE_DIR."images/a/test.jpg";
if (file_exists($filename)){
    echo "File exist.";
}else{
    echo "File does not exist.";
}

Une autre méthode alternative que vous pouvez utiliser getimagesize (), elle retournera 0(zero) si le fichier/répertoire n'est pas disponible dans le chemin spécifié.

if (@getimagesize($filename)) {...}
12
IRSHAD

D'après votre commentaire à Haim, s'agit-il d'un fichier sur votre propre serveur? Si tel est le cas, vous devez utiliser le chemin du système de fichiers, et non l'URL (par exemple file_exists( '/path/to/images/thumbnail.jpg' )).

5
JJJ

pour moi aussi la fonction file_exists () ne fonctionne pas correctement. J'ai donc eu cette solution alternative. J'espère que celui-ci aide quelqu'un

$path = 'http://localhost/admin/public/upload/video_thumbnail/thumbnail_1564385519_0.png';

    if (@GetImageSize($path)) {
        echo 'File exits';
    } else {
        echo "File doesn't exits";
    }
0
Nashir