【问题标题】:Showing an image in Cakephp 2.3在 Cakephp 2.3 中显示图像
【发布时间】:2013-07-02 21:30:54
【问题描述】:

我正在使用 cakephp 为网站编写一个小型新闻组件。理想的工作方式是让管理员输入新闻项目的标题、来源、指向它的链接(如果可用)、其内容(进行备份)和随附的图像。

除了图像部分外,一切正常。由于每个条目最多只有一个图像,因此我将图像信息存储在存储帖子的同一个数据库表中。到目前为止,我已经设法将图像文件上传到 app/uploads/ 并将其数据(名称、大小和类型)添加到数据库中。

现在我不能显示它。

我所做的只是环顾四周,使用以下方法将图像设置为页面的单一内容:

$this->response->file($url);

但是,我需要能够将此图像显示为网站的嵌入部分,就像显示网络中的大多数图像一样。我一直在环顾四周,似乎找不到任何合适的指导。最简单的解决方案(通过知道图像文件夹的路径链接到图像)也不起作用,因为它们位于 app/uploads 中,这意味着如果我链接到那里 cakephp 认为我正在调用一个没有的“上传”类不存在。使用 MOD_REWRITE 可能是一种选择,但老实说,在我看来这更像是一种 hack,因为必须有一种方法来获取存储的文件并将其作为图像转储,以便它可以嵌入到非常存储它的网站。

有人知道吗?

【问题讨论】:

  • 不能把图片放到app/webroot/uploads 里?
  • 我已经考虑过(将它们放在蛋糕文件夹之外),但它有点相同 - Cakephp 应该有办法做到这一点而不诉诸这些技巧,理想情况下我想要与其文件夹中的蛋糕应用程序有关的所有文件。顺便说一句,app/whatever 我指的是 cakephp 程序正在运行的 app 文件夹(也就是说,已经在 Web 服务器中),而不是我电脑的相对地址。
  • your-cake-folder/app/webroot/uploads 将在 cake 文件夹内(webroot 是存储所有需要公开访问的文件的文件夹,如 css 和 js),它符合您的要求。为此,我不建议将图像存储在蛋糕之外。
  • 好吧,我现在觉得自己很愚蠢,但效果很好。有趣的是,我已经在这里和那里从 cakephp 教程中获取信息一周了,并且不记得曾经阅读过有关 webroot 文件夹的信息。非常感谢! (顺便问一下,我如何将您的帖子标记为答案?)
  • 我没有发布任何内容,我只是发表了评论。我现在将我们讨论过的内容发布一个答案,以便您标记它(我的答案旁边会有一个复选标记)

标签: php image cakephp image-processing cakephp-2.3


【解决方案1】:

对于需要公开访问以进行可视化的内容,例如 css 或 js 文件......或者在本例中为图像,简单的选择是将其放在 webroot 文件夹中。

我对蛋糕的通常结构是这样的

/app
   /Config
   ....
   /webroot
      /js
      /cs
      /users
         /images
         /docs
         ...etc

尝试访问应用程序中的文件夹(如app/uploads)会导致控制器和视图的路由出现问题。所以更容易把东西放在webroot 里面。特别是如果是与蛋糕严格相关的图像。

请记住,webroot 中的内容具有公共访问权限,因此不要将不希望通过 url 访问的文件保存在其中。

【讨论】:

  • 再次感谢!这是一件非常小的事情,但它让我陷入了困境。我遵循的教程没有在任何地方说明这一点并没有帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
相关资源
最近更新 更多