Kohana 3.2上传例外

时间:2013-05-21 16:34:23

标签: kohana

我正在使用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')))
                ),

我遇到了这样的问题:如果我留下一个必填字段,例如“name”并上传一个txt文件以强制两个异常发生,它只能捕获ORM_Validation_Exception。所以我的问题是如何合并两个错误数组。非常重要的是,我怎么知道它是对图像场还是横幅场的一种例外。

我已经尝试了几天但最终没有任何结果。请帮帮我!

1 个答案:

答案 0 :(得分: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();

    }