Cakephp:如果已上传则显示图片,如果未上传图片则显示文本

Cakephp: Show image if uploaded or show text if image was not uploaded

我正在开发一个系统,用户最多可以上传四张照片。如果用户没有上传照片,我希望显示以下文本:'empty'.

我已经准备了下面的代码,但是我没有成功:/ 问题是当上传图片时它仍然打印 'empty' 而上传的图片没有显示。

<?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 <img> 和 PHP file_exists() 检查使用相同的路径。

问题是,HTML 图像正在通过用户的浏览器查找文件,而 file_exists() 方法正在通过您的服务器查找文件。两条路径很少相同。

尝试在您的 PHP 的 file_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');
}