【问题标题】:Showing a default Image in a CakePHP application在 CakePHP 应用程序中显示默认图像
【发布时间】:2013-08-11 19:05:09
【问题描述】:

我在一个 CakePHP 应用程序中工作,我在其中使用 HTML helper's image() function 来显示图像。我想要的是,如果它在给定路径中获取图像,那么它将显示图像,否则,它将显示默认图像。我有那个“默认”图像,但我不明白在哪里/如何定义它。

谢谢

【问题讨论】:

    标签: image cakephp html-helper


    【解决方案1】:

    扩展 HTML 助手并将逻辑添加到图像方法中,如果最初请求的图像不存在,则使用默认图像覆盖调用的图像。

    【讨论】:

    • 你能给我一个代码示例吗?我不明白你说什么。我应该在哪里扩展 HtmlHelper ?我应该更改 HtmlHelper.php 文件中主要“image()”方法的逻辑吗?我试过了,但我无法在那里获得图像的路径。我想检查路径,如果存在图像,则可以,如果不存在,我将定义一个默认图像。但我不明白如何检查路径和定义默认图像的位置。顺便说一句,非常感谢您的回复。再帮我一点。谢谢。 @burzum
    • 对不起,没有。我不会做你的工作。我给了你足够的信息,作为开发人员,你应该能够快速解决这个问题,这是基本的面向对象编程。如果您不知道如何覆盖方法,请学习 OOP 编程课程或在此处就与它相关的 SO 提出问题。
    【解决方案2】:

    index.ctp 文件代码

    <?php   
    
    $MyImage = $post['Post']['image0']; // image0 is my db field
    
      if (file_exists("img/uploads/posts/".$MyImage)) 
               $MyImage1 ="/img/uploads/posts/".$MyImage;
      else
               $MyImage1 = "/img/uploads/posts/no-image.jpg";
    
            echo $this->Html->image($MyImage1);
    ?>
    

    注意:我的帖子图片存放在 app/webroot/img/posts 文件夹中(默认图片也在此文件夹中。)

    【讨论】:

    • 是的,这是个好主意,但我也想过。我认为它会给我和服务器带来更多额外的负载。假设,我想在我的应用程序的任何地方使用它。所以,我必须经常做这些额外的检查。我觉得这很恶心。而且,想想服务器。它也总是必须做这个额外的处理(检查)。我实际上正在寻找一种更简单的方法,因为我想始终在有图像的应用程序中使用它。无论如何,非常感谢您的帮助。
    • 你的整个概念是有缺陷的,因为你这样做的方式你必须检查图像是否存在。相反,您应该依赖有关该图像的信息:如果您在数据库中查找的任何图像都没有图像,则显示默认图像。如果您必须检查图像是否确实存在于磁盘上,那么就无法绕过该 file_exsts() 检查。然而,我的 FileStorage 插件为大多数(如果不是全部)与文件上传、存储和处理以及图像显示相关的问题提供了完整的解决方案。 github.com/burzum/FileStorage
    猜你喜欢
    • 2015-03-11
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 2018-05-07
    • 2011-11-01
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多