2016-03-02 57 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块被捕获。

您应该在目标目录上为该错误消息设置适当的权限。