2012-03-26 72 views
0

不能試圖驗證圖片上傳Kohana的文件驗證錯誤,我似乎

$imagevalidate = Validate::factory($_FILES); 
$imagevalidate->rules($_FILES['profile_picture'], array(
    'Upload::valid' => array(), 
    'Upload::not_empty' => array(), 
    'Upload::type' => array(
     'Upload::type' => array(
      'jpg', 
      'png', 
      'gif' 
     ) 
    ), 
    'Upload::size' => array(
     '1M' 
    ) 
)); 
if ($imagevalidate->check()) { 
    $picture = Upload::save($_FILES['profile_picture']); 
    Image::factory($picture)->resize(200, 200, Image::WIDTH)->save(); 
    $profile->profile_picture = basename($picture); 
} else { 
    $errors = $imagevalidate()->errors('profile/edit'); 
} 

我收到此錯誤ErrorException【警告】當弄清楚這個錯誤的原因:在isset非法偏移類型或空

在3.2示例
+0

Kohana的版本是什麼? – Rojan 2012-03-27 05:57:36

回答

2

傳遞:

$array = Validation::factory($_FILES); 
    $array->rule('file', 'Upload::size', array(':value', '900KiB')); 
    $array->rule('file', 'Upload::type', array(':value', array('jpg', 'png', 'gif'))); 
    $array->rule('file', 'Upload::image', array(':value', array(640, 480))); 
    $array->rule('file', 'Upload::valid'); 

    if($array->check()) 
    { 
     if(Upload::save($_FILES['file'])) 
      echo 'uploaded'; 
    } 
    else 
    { 
     echo Debug::vars($array->errors('profile/edit')); 
    } 

消息文件:

return array(
'file' => array(
    'Upload::type' => 'blabla', 
    'Upload::size' => 'blabla', 
    'Upload::image' => 'blablan', 
    'Upload::valid' => 'blablabla' 
), 

);

un .. hope helpful :)

+0

顯然上傳::圖像不允許「空」文件,並且,與其他3條規則不同,如果沒有文件傳遞到表單,它將引發驗證錯誤,並且您的示例在這種情況下會失敗。 – techexpert 2012-06-08 04:33:26