Cakephp:如果上传,则显示图像;如果未上传,则显示文本

Cakephp:如果上传,则显示图像;如果未上传,则显示文本,php,cakephp,cakephp-2.0,cakephp-2.6,Php,Cakephp,Cakephp 2.0,Cakephp 2.6,我正在开发一个系统,用户可以上传多达四张照片。如果用户没有上传照片,我希望下面的文字将显示:“空” 我已经准备了下面的代码,但是我没有管理:/问题是,当上传图像时,它仍然打印“空”,并且上传的图像没有显示 <?php if (file_exists('../files/collection/photo2/' .$collection['Collection']['photo_dir2'] . '/thumb_' . $collection['Collection']['photo2']))

我正在开发一个系统,用户可以上传多达四张照片。如果用户没有上传照片,我希望下面的文字将显示:“空”

我已经准备了下面的代码,但是我没有管理:/问题是,当上传图像时,它仍然打印“空”,并且上传的图像没有显示

<?php if (file_exists('../files/collection/photo2/' .$collection['Collection']['photo_dir2'] . '/thumb_' . $collection['Collection']['photo2'])) 
{
  echo $this->Html->image('../files/collection/photo2/' . $collection['Collection']['photo_dir2'] . '/thumb_' . $collection['Collection']['photo2']);}
else
{
  echo ('empty');
}
?>


非常感谢您的指导和帮助:)TLDR:您正在检查的文件不存在。修好你的路

详细信息: 您试图对HTML
和PHP
文件使用相同的路径。\u exists()
检查

问题是,HTML图像通过用户的浏览器查找文件,其中
file\u exists()
方法通过服务器查找文件。这两条道路很少是相同的

尝试在PHP的
文件\u exists()
方法中使用正确的路径,它应该通过检查

例如:

if(file_exists(APP . 'files' . DS . 'collection' . DS . 'photos2' . $collection['Collection']['photo_dir2'] . DS . 'thumb_' . $collection['Collection']['photo2'])) {
    echo $this->Html->image('../files/collection/photo2/' . $collection['Collection']['photo_dir2'] . '/thumb_' . $collection['Collection']['photo2']);
}
else {
    echo ('empty');
}

这里有一个粗略的猜测:你正在使用
file\u exists()
检查的文件不存在。不,我肯定文件在那里:)如果你100%肯定它在正确的位置(我仍然猜它不准确),那么检查你的权限。当我删除If-else语句时,我只留下:echo$this->Html->image(“../files/collection/photo2/”.$collection['collection']['photo_dir2']./thumb'.$collection['collection']['photo2']);…显示了图像…我坚持我最初的猜测(有关更多解释,请参阅下面的答案),感谢Dave的耐心和指导:)