2013-05-21 67 views
2

我使用Kohana 3.2。 我有一個帶有兩個上傳字段的類別表單:一個是圖片,另一個是橫幅。在我的控制,我得到:Kohana 3.2上傳異常

try{ 

    $model_category->save(); 

}catch(ORM_Validation_Exception $e){ 
    $errors = $e->errors('forms'); 

    //echo Debug::vars($errors); 
}catch (Exception $e){ 
    $upload_errors = $e->getMessage(); 
} 

規則我的模型圖片:

'photo' => array(

        array('Upload::valid'), 
        array('Upload::type', array(array(':value'),array('jpeg', 'jpg', 'png', 'gif'))), 
        array('Upload::size', array(array(':value'), array('500000'))) 
       ), 

       'banner' => array(
         //array(array($this, 'validate_photo'), array(':validation', ':field', ':value', 500, 100)), 
         array('Upload::valid'), 
         array('Upload::type', array(array(':value'),array('jpeg', 'jpg', 'png', 'gif'))), 
         array('Upload::size', array(array(':value'), array('5000000'))) 
       ), 

我進入這樣的問題:如果我離開必填字段,例如「名稱」,並上傳TXT文件強制發生這兩種異常,它只能捕獲ORM_Validation_Exception。所以我的問題是如何合併兩個錯誤數組。而且非常重要的是,我怎麼知道它是否是圖像字段或橫幅字段的模糊。

我一直在努力了幾天,但最終沒有任何東西。請幫助我!

回答

1

您可以使用Validation類驗證您的上傳,然後如果驗證無誤 - 保存模型。

喜歡的東西:

$validate_image = Validation::factory($_FILES); 

    $validate_image->rule($name, 'Upload::valid'); 
    $validate_image->rule($name, 'Upload::type', array($_FILES['image'], array('jpeg', 'jpg', 'png', 'gif'))); 
    $validate_image->rule($name, 'Upload::size', array($_FILES[$name], '500000')); 


    $validate_banner = Validation::factory($_FILES); 

    $validate_banner->rule($name, 'Upload::valid'); 
    $validate_banner->rule($name, 'Upload::type', array($_FILES[$name], array('jpeg', 'jpg', 'png', 'gif'))); 
    $validate_banner->rule($name, 'Upload::size', array($_FILES[$name], '500000')); 

    if ($validate_image->check() && $validate_banner->check()) { 

     $model_category->save(); 

    }