Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Codeigniter "file_exists($filename)"

Need help with the codeigniter, I think file_exists is for server path, not for url. but my image folder got same level with application and system folder. find nothing on google, please help

$url=base_url();
$filename="$url/upload/$id.jpg";
if (file_exists($filename)){
    echo "<li><img src=\"".$url."upload/$id.jpg\" width=\"40\" height=\"40\" /></li>";
}else{
    echo "<li><img src=\"http://www.mydomain.com/haha/image/noimg.png\" width=\"40\" height=\"40\" /></li>";
}
like image 901
will.i.am Avatar asked Feb 09 '12 20:02

will.i.am


1 Answers

Codeigniter is always running on index.php, so all paths are relative from there. You can use any of the following, assuming upload/ is at the same level as index.php:

  • file_exists("upload/$id.jpg")

  • file_exists("./upload/$id.jpg")

  • file_exists(FCPATH."upload/$id.jpg")

FCPATH is a constant that Codeigniter sets which contains the absolute path to your index.php.

As a side note, I prefer is_file() when checking files, as file_exists() returns true on directories. In addition, you might want to see if getimagesize() returns FALSE to make sure you have an image.

like image 156
Wesley Murch Avatar answered Oct 27 '22 07:10

Wesley Murch