0

我正在开发一个为用户提供博客服务的 codeigniter 项目。我想给每个用户一个文件夹来上传文件。我想将这些文件夹放在一个名为“sites”的文件夹中,并将这个文件夹放在 CI 目录中,靠近“application”和“system”文件夹,所以我有这样的东西:

  • 应用
  • 系统
  • 网站
    • user1_文件夹
    • user2_folder

一个问题是,例如,我希望 user1_folder/pic.jpg 的地址如下:

localhost/ci/user1_folder/pic.jpg

代替

localhost/ci/sites/user1_folder/pic.jpg

谁能告诉我该怎么做?

另一个问题是我想要锁定其中的一些站点,所以我想要一个更像前端控制器的东西,它由对我站点的每个 http 请求运行,以检查请求的博客是否被锁定,如果是则拒绝访问。

4

2 回答 2

0

如您所说,由控制器提供文件:

class File extends CI_Controller {

    public function img($user='', $img='') {

        //file exists
            //user ok
                //serve the file
    }
}

site.com/file/img/user1/image.jpg

您可以通过 CI Routing 重写此 url

$route['sites/(:any)/(:any)\.(jpg|png|gif|jpeg)'] = 'file/img/$1/$2';

site.com/sites/user1/image.jpg

我从来没有这样做过,这只是为了给你一个想法。

于 2013-08-01T23:33:48.977 回答
0

我以前从未做过类似的事情,但我想有两种方法可以做到。

CI 控制器方式,如 lighta 所建议的。一条评论是,进行重定向而不是读取和提供文件。

另一种方法是使用 .htaccess

于 2013-08-02T08:26:57.360 回答