0

私は2つのコントローラー(CodeIgniter)を持っています

controllers
 - indexController.php
 - admin (Folder)
   - adminController.php
  • IndexController は MY_Controller のサブクラスです
  • adminController は MY_Admin_Controller のサブクラスです (MY_Admin Controller は MY_Controller のサブクラスです)

両方のコントローラー (インデックスと管理者) に機能があります。これ:

function thumb() {
    $product = $this->products->get_product_by_id($this->uri->segment(2));

    if($product == NULL) show_error("No Access", 403);

    $delimeter = "";
    if(stripos($product->thumbpath, "/") !== false) {
        $delimeter = "/";
    } else {
        $delimeter = "\"";
    }
    $arr = explode($delimeter, $product->thumbpath);

    $path = "uploads/".$this->uri->segment(2)."/".$arr[count($arr)-1];

    $this->load->image($path, get_mime_by_extension($path));

}

adminController からこの関数を実行すると、実行されます。しかし、この関数を indexController から実行すると、そうではありません...

これは私のroutes.phpにあります:

$route['thumb/:any'] = "index/thumb";
  • adminController から作業イメージを取得します...
  • indexController から私は壊れた画像を取得します....

実際には制限はありません (セッション、ファイル許可...)

誰でも - 私に何ができるか考えていますか?

4

1 に答える 1

0

私の推測では、インデックス コントローラーにいるときは $path が間違っています。これを試して:

$path = base_url()."uploads/".$this->uri->segment(2)."/".$arr[count($arr)-1];

正直なところ、CI のほとんどのリンクは、相対パスではなく base_url を使用して絶対パスにした方が扱いやすいと思います。また、SEO には絶対パスの方が優れていることを理解していることからもわかりますが、それが真実であるとは証明できません。

于 2013-02-19T12:22:39.613 に答える