2013-08-01 137 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