我正在使用cakephp为网站编写一个小型新闻组件。这可行的理想方式是让管理员输入新闻项目的标题,来源,指向它的链接(如果有的话),其内容(备份)和附带的图像。 / p>
这一切都有效,但图像部分。由于每个条目最多只能包含一个图像,因此我将图像信息存储在我存储帖子的同一个数据库表中。到目前为止,我设法将图像文件上传到app / uploads /,并将其数据(名称,大小和类型)添加到数据库中。
现在我无法展示它。
我设法环顾四周,通过使用以下方式将图像设置为页面的单个内容:
$this->response->file($url);
但是,我需要能够将此图像显示为网站的嵌入部分,就像显示网络中的大多数图像一样。我一直在环顾四周,似乎找不到任何适当的指导。最简单的解决方案(通过了解图像文件夹的路径链接到图像)也不起作用,因为它们在应用程序/上传中,这意味着如果我链接那里,cakephp认为我正在调用'上传'类没有'存在。使用MOD_REWRITE可能是一个选项,但是,老实说,在我看来它更像是一个黑客,因为必须有一种方法来获取存储的文件并将其转储为图像,以便它可以嵌入到非常存储它的网站。
有人知道吗?
答案 0 :(得分:2)
对于需要具有可视化公共访问权限的内容,例如css或js文件......或者在本例中为图像,简单的选项是将其放在webroot
文件夹中。
我与蛋糕的通常结构就像
/app
/Config
....
/webroot
/js
/cs
/users
/images
/docs
...etc
尝试访问应用程序中的文件夹(如app/uploads
)将导致控制器和视图的路由出现问题。因此,将内容保存在webroot
内会更容易。特别是如果它的图像与蛋糕严格相关。
请注意,webroot 中的内容具有公共访问权限,因此请不要将文件保存在您不希望被网址访问的位置。