2016-03-02 106 views
1

我試圖捕獲異常,而在Zend框架1如何捕捉在上傳文件例外 - Zend框架1

我拒絕權限的文件夾,然後上傳文件運行下面的代碼來捕獲異常,但它不工作。

public function uploadImage($postedFile,$destination) { 
     try { 
       $imageName = $this->getFileName($postedFile); //$postedFile is same as $_FILES 


     $upload = new Zend_File_Transfer(); 

     foreach ($upload->getFileInfo($imageName) as $info) { 

      if ($info['name'] != '') { 
       $ext = pathinfo($info['name'], PATHINFO_EXTENSION); 
       $newName = md5(rand(1, 100).date('ymdhis') . $info['name']) . '.' . $ext; 

       $upload->addFilter('Rename', $destination."/".$newName); 
       if (!$upload->receive($info['name'])) { 
        return FALSE; 
       } 

      } 
      break; 
     } 
      return $newName; 
     } catch (Zend_File_Transfer_Exception $e) { 
      throw new Exception('I want to catch this'); 
     } 

    } 

錯誤:

Warning: 
move_uploaded_file(/var/www/html/glistonapp/application/../public/images/app_user_profile_picture/80d55d25c52ef4d74079cfa903288b77.png): 
failed to open stream: Permission denied in /var/www/html/glistonapp/library/Zend/File/Transfer/Adapter/Http.php on line 189 
Warning: move_uploaded_file(): Unable to move '/tmp/phpOtOLVv' to '/var/www/html/glistonapp/application/../public/images/app_user_profile_picture/80d55d25c52ef4d74079cfa903288b77.png' in /var/www/html/glistonapp/library/Zend/File/Transfer/Adapter/Http.php on line 189 

回答

0

它不會出現你所呼叫的Zend_File_Transfer對象的方法會拋出異常。

沒有拋出的異常,你將無法「捕捉」你的try塊中的任何東西。相反,你應該檢查你調用的函數的返回值,以確定是否有問題。

請參閱API參考,這將告訴你哪些方法拋出異常: http://framework.zend.com/apidoc/1.12/classes/Zend_File_Transfer_Adapter_Abstract.html

+0

感謝您的回覆。我也嘗試過這樣的事情: 嘗試{// 代碼 }趕上(例外$ EX){ 回聲$ EX->的getMessage();退出; //沒有工作 } ,但它無法正常工作。 –

0

你的錯誤消息也不例外,因此它不會受到try/catch塊被捕獲。

您應該在目標目錄上爲該錯誤消息設置適當的權限。