我有两个控制器(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更好,尽管我不能证明这是真的。