0

我正在使用 GroceryCRUD 作为包含新闻稿的数据库的前端。秘书现在可以轻松地进入并在数据库中添加/编辑/删除新闻稿。只有合格的用户才能通过 .htaccess 密码访问应用程序根目录。这样做的问题是 GroceryCRUD 上传的资产(例如照片)被上传到 /www/approot/assets/uploads/ 目录,该目录受密码保护,因为 /approot/ 受到保护。

我理想的解决方案是在我遇到麻烦的应用程序根目录之外设置一个上传目录。默认情况下,这是 GroceryCRUD 处理上传的方式:

$this->grocery_crud->set_field_upload('photo1','assets/uploads/');

我试过把它改成这样:

$this->grocery_crud->set_field_upload('photo1','/public/assets/uploads/');

我希望这个 / 会使路径从文档根目录而不是应用程序根目录开始,但它会引发此错误:

PHP Fatal error:  Uncaught exception 'Exception' with message 'It 
seems that the folder "/Users/myusername/www/approot//public/assets/uploads/" 
for the field name "photo1" doesn't exists.

这似乎表明 CI 或 GroceryCRUD 仅采用 set_upload 字段中的第二个参数,并将其连接到定义的站点 URL 的末尾。有什么不涉及创建用户登录系统的方法吗?

4

2 回答 2

0

尝试使用相对路径。

$this->grocery_crud->set_field_upload('photo1','../assets/uploads/');

..-> 上一级目录

于 2013-09-12T03:36:39.703 回答
0

我最终实现了本教程中概述的登录系统:

http://net.tutsplus.com/tutorials/php/easy-authentication-with-codeigniter/

设置非常简单,适合我的需要。我找到了使用 httpd.conf 指令访问目录的方法,但我觉得这是一个更可行的解决方案,因为我无法直接访问服务器配置文件。

也许将来 GroceryCRUD 将允许将上传放置在应用程序文件夹之外。

于 2013-09-12T17:49:57.213 回答