Codeigniter图像输出don';t在不同的控制器中工作


Codeigniter Image Output don't work in different Controller

我有两个控制器(CodeIgniter)

controllers
 - indexController.php
 - admin (Folder)
   - adminController.php
  • IndexController是MY_Controller的一个子类
  • adminController是MY_Admin_Controller的一个子类(而MY_Admin Controller是MY_Coontroller的子类)

在控制器(索引和管理)中,我都有一个功能。此:

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我得到一个损坏的图像

实际上没有限制(会话、文件权限…)

有人知道我能做什么吗?

我的猜测是,当您在索引控制器中时,$path是错误的。试试这个:

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

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