2017-04-20 45 views
0

SimpleImage類未捕獲異常的時候,這裏負荷的形象是代碼:PHP simpleImage類捕獲異常錯誤

public function load($filename) { 
     //echo $filename; exit; 
    $image_info = getimagesize($filename); 
    $this->image_type = $image_info[2]; 

    if ($this->image_type == IMAGETYPE_JPEG) { 
     $this->image = imagecreatefromjpeg($filename); 
    } elseif ($this->image_type == IMAGETYPE_GIF) { 
     $this->image = imagecreatefromgif($filename); 
    } elseif ($this->image_type == IMAGETYPE_PNG) { 
     $this->image = imagecreatefrompng($filename); 
    } 
} 

回答

0

你是不是捕捉異常的最後一個人會被捕獲異常,如果它不符合條件。這裏是更新的代碼。

public function load($filename) { 
     //echo $filename; exit; 
    $image_info = getimagesize($filename); 
    $this->image_type = $image_info[2]; 

    if ($this->image_type == IMAGETYPE_JPEG) { 
     $this->image = imagecreatefromjpeg($filename); 
    } elseif ($this->image_type == IMAGETYPE_GIF) { 
     $this->image = imagecreatefromgif($filename); 
    } elseif ($this->image_type == IMAGETYPE_PNG) { 
     $this->image = imagecreatefrompng($filename); 
    } else { 
     throw new Exception("The file you're trying to open is not supported"); 
    } 
} 

我認爲這將解決。

+0

按預期工作完美。 – mkSmith

+0

檢查'$ image_info'是否爲array.otherwise如果文件名不是圖像文件或無法讀取爲圖像,則可能會產生錯誤。 –