CakePHP 3:如何检查文件或图像是否存在

时间:2015-11-18 06:22:17

标签: cakephp cakephp-3.0

我只是想检查图像是否存在,我可以使用PHP来完成。例如: -

$file = WWW_ROOT .'uploads' . DS . 'employee' . DS .'_'.check.jpg;

$file_exists = file_exists($file);

它对我来说很好。但我也尝试过像这样使用elementExists: -

if($this->elementExists("../".$employees->front_image))
{
   echo $this->Html->image("../".$employees->front_image); // image output fine without condition.
}

// Here $employees->front_image = uploads/employee/employeename.jpg

此检查无效。我怎么能在CakePHP中做到这一点?

2 个答案:

答案 0 :(得分:1)

我认为这适用于Cake 3(您应该在afterFind方法IMO中执行此操作):

// Create a new file with 0644 permissions
$file = new File('/path/to/file.php', true, 0644);

if ($file->exists()) {
    //do something
}

$file->close();

您的方法是检查视图元素是否存在。

答案 1 :(得分:1)

CakePHP是用PHP编写的,所以如果你已经有一个像file_exists()那样的简单解决方案。所以你可以这样写: -

if (file_exists(WWW_ROOT . $employees->front_image)):
   echo $this->Html->image('../' . $employees->front_image);
endif;

elementExists()用于检查View元素是否存在,而不是webroot中是否存在文件,因此不应该像您尝试的那样使用。它会进行file_exists()检查,但这会仅扫描所有可用的View元素路径。