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

时间:2015-03-29 20:15:38

标签: php cakephp cakephp-2.0 cakephp-2.6

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

我准备了下面的代码,但是我没有管理:/问题是,当图片上传时,它仍会打印出“空白”字样。并且上传的图像不会显示。

<?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');
}
?>

感谢您的指导和帮助:)

1 个答案:

答案 0 :(得分:2)

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');
}