2014-02-25 47 views
1

我已經使用CodeIgniter爲我的個人網站編寫了一個系統,並根據我的需要使用了GD2庫來處理圖像。在localhost和我用於測試的免費託管時它工作得很好。但是現在我正在從不同的提供商處獲得付費託管服務,它不適用於jpg文件。它顯示了破碎的圖像圖標。但在PNG文件中工作得很好。我試圖顯示操作錯誤,但沒有顯示。CodeIgniter圖像處理JPG錯誤

這是我的媒體控制器,它操縱圖像;

<?php defined('BASEPATH') OR exit('No direct script access allowed'); 

class Media extends CI_Controller 
{ 

function sandbox($imageName , $width) 
    { 

     if(!is_file('uploads/sandbox/'.$width.'-'.$imageName)) { 
     $config['image_library'] = 'gd2'; 
     $config['source_image'] = 'uploads/original/'.$imageName; 
     $config['new_image'] = 'uploads/sandbox/'.$width.'-'.$imageName; 
     $config['dynamic_output'] = FALSE; 
     $config['maintain_ratio'] = TRUE; 
     $config['master_dim'] = 'width'; 
     $config['width'] = $width; 
     $config['height'] = $width; 

     $this->image_lib->initialize($config); 
     return $this->image_lib->resize(); 
    } else { 
     return true; 
    } 

    } 

    public function covers($imageName) 
    { 

    if($this->sandbox($imageName, 920)) { 

     $config['image_library'] = 'gd2'; 
     $config['source_image'] = 'uploads/sandbox/'.'920-'.$imageName; 
     $config['dynamic_output'] = TRUE; 
     $config['maintain_ratio'] = FALSE; 
     $config['width'] = 920; 
     $config['height'] = 450; 

     $this->image_lib->initialize($config); 
     $this->image_lib->crop(); 

    } 


    } 

    public function images($imageName) 
    { 

    if($this->sandbox($imageName, 440)) { 

     $config['image_library'] = 'gd2'; 
     $config['source_image'] = 'uploads/sandbox/'.'440-'.$imageName; 
     $config['dynamic_output'] = TRUE; 
     $config['maintain_ratio'] = FALSE; 
     $config['width'] = 440; 
     $config['height'] = 300; 

     $this->image_lib->initialize($config); 
     if(!$this->image_lib->crop()){ 
      echo $this->image_lib->display_errors(); 
     } 

    } 

    } 

    public function facebook($imageName) 
    { 

    $config['image_library'] = 'gd2'; 
    $config['source_image'] = 'uploads/original/'.$imageName; 
    $config['dynamic_output'] = TRUE; 
    $config['maintain_ratio'] = FALSE; 
    $config['width'] = 256; 
    $config['height'] = 256; 

    $this->image_lib->initialize($config); 
    echo $this->image_lib->resize(); 

    } 

} 
+0

你記得在服務器上安裝GD嗎?我被那一次抓住了。 –

+0

它調整大小並保存到另一個文件(上面的沙箱功能)時工作正常。無論是JPG還是PNG。 – SuperioREX

+0

是自動加載的image_lib庫嗎?如果沒有,那麼在你給他們打電話之前你必須加載庫。我認爲錯誤報告已關閉。嘗試開啓錯誤報告功能 –

回答