CodeIgniter file_exists无法正常工作

时间:2014-07-16 09:01:45

标签: php codeigniter

我看到了几个相同的主题,例如Codeigniter "file_exists($filename)"http://ellislab.com/forums/viewthread/79524/#399857。,但对我没用。

在我的网址(dashboard/products/)中,我从帮助程序中调用了一个函数,该函数如下:

if(!function_exists('getImage')){

    function getImage($image){

        $path = base_url() . 'public/images/';

        if(file_exists($path . $image) === FALSE || $image == null){
            return $path . "no_image.png";
        }

        return $path . $image;
    }
}

然后在我的文件content.php view dashboard/products中,我以这种方式使用该功能:

<img src="<?php echo getImage($row->picture); ?>" class="thumbnail-image"/>

这总是返回no_image.png,问题是由base_url()函数中的file_exists引起的(根据我从其他类似主题中读到的内容)。

解决方案的主题如下:

1) - file_exists(dir_name(FCPATH)."/gallery/member_picture/member_no_image.gif")
2) - file_exists("./gallery/member_picture/member_no_image.gif")

我已经尝试了所有这些并且没有工作。就本案而言,我当前的网址为:http://localhost/myproject/dashboard/products

解决方案1)

if(file_exists(dirname(FCPATH) . "/public/images/" . $image) === FALSE || $image == null){
    return $path . "no_image.png";
}

不起作用。如果我输出值,我收到以下内容:

return dirname(FCPATH) . "/public/images/" . $image;
//output to img src:
<img src="C:\xampp\htdocs/public/images/users/1/image_name.jpg" class="thumbnail-image">

另外,如果我在另一个标签页中打开src链接,则网址会更改为:http:// localhost/myproject/dashboard/C:/xampp/htdocs/public/images/users/1/image_name.jpg

解决方案2)

再次,将其改编为我的代码:

return "./public/images/" . $image;
//output to img src:
<img src="./public/images/users/1/image_name.jpg" class="thumbnail-image">

在新标签页中打开src的链接,网址将更改为:

http://localhost/myproject/dashboard/public/images/users/1/image_name.jpg

哪个错了。它应该是:

http://localhost/myproject/public/images/users/1/image_name.jpg

那么,那就是说,我想如何判断图像是否存在?

1 个答案:

答案 0 :(得分:0)

<强>解决即可。

由于问题出在file_exists()上,并且似乎函数进入了根目录,我所要做的就是改变一点算法。

function getImage($image){

    if(file_exists('public/images/' . $image) == FALSE || $image == null){
        return base_url() . './public/images/no_image.png';
    }

    return base_url() . './public/images/' . $image;
}