2013-02-19 90 views
0

我有2控制器(笨)笨图像输出不以不同的控制器工作

controllers 
- indexController.php 
- admin (Folder) 
    - adminController.php 
  • 的IndexController是MY_Controller的一个子类
  • adminController是MY_Admin_Controller的子类(和my_admin可以控制器是一个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的我得到一个破碎的形象....

实际上有没有限制(会话,文件权限...)

任何人 - 任何想法我可以做什么?

回答

0

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

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

老实说,我发现在CI最容易的链接处理,当我让他们使用绝对路径BASE_URL而不是相对路径,也从我的理解绝对路径是搜索引擎优化更好,虽然我不能证明这是真的。

+0

图像函数使用相对路径。我用另一种方式解决了这个问题。我把这个函数粘贴到一个单独的控制器(而不是indexController) - 就像一个thumbController。我不知道这是为什么,另一个不是...... – MNCodeFrog 2013-02-19 17:01:30