2013-08-01 84 views
0

我正在开发一个codeigniter项目,它为用户提供博客服务。我想给每个用户一个文件夹来上传文件。 我希望把这些文件夹名为“网站”一个文件夹,并把在CI目录此文件夹旁边的“应用”和“系统”的文件夹,所以我有这样的事情:codeigniter管理文件夹访问

  • 应用
  • 系统
  • 网站
    • user1_folder
    • user2_folder

一个问题是,比如我想user1_folder的地址/ pic.jpg是这样的:的

localhost/ci/user1_folder/pic.jpg 

代替

localhost/ci/sites/user1_folder/pic.jpg 

谁能告诉我怎样才能做到这一点?

另一个问题是我想要锁定这些网站中的一部分,所以我希望更像是一个前端控制器,它可以通过每个http请求向我的网站运行,以检查请求的博客是否被锁定,如果否认访问。

回答

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路由

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

site.com/sites/user1/image.jpg

我重写这个网址永远不要这样做,这只是为了给你一个想法。

0

我从来没有做过这样的事情,但我想有2种方法可以做到这一点。

CI控制器的方式,像lighta建议。一个意见是,做一个重定向而不是阅读和提供文件。

另一种方法是使用.htaccess