2012-02-09 25 views
8

需要codeigniter帮助,我认为file_exists是用于服务器路径,而不是url。但我的图像文件夹与应用程序和系统文件夹的级别相同。在谷歌上找不到任何东西,请帮忙

$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>"; 
} 
+2

一件事,file_exists * *是服务器的路径,而不是URL。所以,你不会用BASE_URL(),你会使用APPPATH – Ben 2012-02-09 21:04:05

回答

40

Codeigniter总是在index.php上运行,所以所有的路径都是相对的。您可以使用任何以下的,假设upload/处于同一水平index.php

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

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

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

FCPATH是一个常数,含有ab的Codeigniter集合通往您的index.php的溶质路径。

作为一个方面说明,我检查文件时,如file_exists()返回目录上真正喜欢is_file()。另外,您可能想要查看getimagesize()是否返回FALSE以确保您有图像。

+0

这并不总是奏效。 – Linesofcode 2014-07-15 17:27:48

+0

我的数据具有图像完全path..eg。(HTTP://localhost/media/newsdata/20150923/Entertainment/Casspture.PNG)当我使用file_exists($ thisfile)是拨错,它总是返回false。 。请 – 2015-09-24 03:23:43

+0

只能使用服务器的路径:'file_exists(“媒体/ newsdata/20150923 /娱乐/ Casspture.PNG”)'如果 – 2015-09-24 04:03:50