2015-04-30 66 views
0

我想在控制器中顯示圖像。它現在正在顯示圖像。這是我想要做的。 1- Hardcode相對圖像路徑,以便不會對圖像造成混淆2-我將這段代碼放在構造函數中,它在「parent::__construct();」行之前工作。但是這行後面沒有顯示。爲什麼Codeigniter讀取文件無法正常工作?

class Fileupload extends Frontend_Controller 
{ 
    function __construct() 
    { 
     //code is working here and showing image 

     parent::__construct(); 

     //code below this line is not working 

     $this->load->model('front_end/user_model'); 
     $dst_path = "C:\\xampp\htdocs\myweb\assets/uploads/avatar.jpg"; 
     header('Content-Type: image/jpeg'); 
     header('Content-Length: ' . filesize($dst_path)); 
     readfile($dst_path,true); 
     die; 
    } 

有什麼建議?

回答

1

編寫代碼這樣

<?php 
class Fileupload extends Frontend_Controller 
{ 
    function __construct() 
    { 
     parent::__construct(); 
    } 


public function index() { 
     $this->load->model('front_end/user_model'); 

     $dst_path = "C:\\xampp\htdocs\myweb\assets/uploads/avatar.jpg"; 

     header('Content-Type: image/jpeg'); 

     header('Content-Length: ' . filesize($dst_path)); 

     readfile($dst_path,true); 

    } 
} 

?> 索引功能默認總是在任何MVC框架調用。這應該有所幫助。不要試圖告訴

+0

是的,我在寫這一點,但它不工作。然後我粘貼在構造函數進行測試。結果是一樣的。在parent :: __ construct()之前工作;但在此之後 – user3516704

+0

在開始處理此問題之前,您應該閱讀一些文檔。幸運的是,你可以找到很多免費的源碼來處理codeigniter。構造之前的代碼完成所有的工作,比如你想加載一個語言文件或者模型等等,但不是在它之後。在這裏加載你的模型,輔助文件是很好的。但總是把你的代碼放在一些單獨的函數或索引之中。 –

0

請試試這個:

function __construct() 
{ 
    //code is working here and showing image 

    parent::__construct(); 

    //code below this line is not working 

    $this->load->model('front_end/user_model'); 

    $dst_path = "C:/xampp/htdocs/myweb/assets/uploads/avatar.jpg"; 
    $data = file_get_contents($dst_path); 
    $img = imagecreatefromstring($data); 
    header("Content-Type: image/jpeg"); 
    imagejpeg($img); 
    // die; 
} 

或者,請閱讀this更多的例子。 :)

0

它看起來像你在構造函數中有一些輸出。這是擾亂代碼的一些空間或別的東西。從構造函數「Frontend_Controller」刪除空間或代碼之前使用ob_clean();使其

相關問題