0

ユーザーにブログ サービスを提供する codeigniter プロジェクトを開発しています。そこにファイルをアップロードするためのフォルダーをすべてのユーザーに提供したいと思います。これらのフォルダーを「サイト」という名前の単一のフォルダーに配置し、このフォルダーを「アプリケーション」および「システム」フォルダーの隣の CI ディレクトリに配置したいので、次のようなものがあります。

  • 応用
  • システム
  • サイト
    • user1_folder
    • user2_folder

1 つの問題は、たとえば、user1_folder/pic.jpg のアドレスを次のようにしたいことです。

localhost/ci/user1_folder/pic.jpg

それ以外の

localhost/ci/sites/user1_folder/pic.jpg

どうすればこれを行うことができるか教えてください。

もう1つの問題は、これらのサイトの一部をロックしたいので、サイトへのすべての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

この URL は CI ルーティングで書き換えることができます

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

site.com/sites/user1/image.jpg

私はそれをしたことがありません。これはあなたにアイデアを与えるためだけです。

于 2013-08-01T23:33:48.977 に答える