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];

老实说,当我使用 base_url 而不是相对路径使它们成为绝对路径时,我发现 CI 中的大多数链接更容易处理,而且从我的理解来看,绝对路径更适合 SEO,尽管我无法证明这是真的。

于 2013-02-19T12:22:39.613 回答