我的应用程序位于 / var / www / html / Myapp / 。所以webroot将是 / var / www / html / Myapp / app / webroot /..。但我想在 / var / www / html / uploads / 目录上传文件并获取图片通过Html帮助器 来自上传目录的 $ this-> Html-> image(),而不是默认情况下来自webroot的 / img 目录。 所以基本上我不想使用cakephp的webroot。如果想上传并获取webroot目录之外的文件。 将不胜感激。
答案 0 :(得分:0)
如果你正在使用cakephp 2.x,我认为这是不可能的,因为HtmlHelper的图像方法使用了函数assetUrl,而函数assetUrl只接受来自assets目录的资源。您可以编写或使用插件来处理上传文件并将其放在其他目录中,但它仍然必须在您的webroot中。您也可以使用最外层index.php
中的ROOT定义的相对路径有关HtmlHelper源代码here
的更多信息答案 1 :(得分:0)
上传的文件需要位于Web可访问的目录中才能在浏览器中查看。如果您不想将文件存储在Cake的webroot
中,则可以使用符号链接,以便可以访问包含上传的目录。
在您的服务器上,在您的上传目录的webroot中创建一个符号链接: -
ln -s /var/www/html/uploads/ /var/www/html/Myapp/app/webroot/uploads
然后您可以访问上传的图片,例如: -
echo $this->Html->image('../uploads/example.gif');