2016-07-24 57 views
1

我正在使用kartik FileInput。Yii2 Kartik fileinput验证

我无法验证,即验证错误仍然显示给它所需的文件时。以下是我的代码。这些文件已正确上传。但仍显示“请上传文件”。

查看:

echo $form->field($model, 'image_file[]')->widget(FileInput::classname(), [ 
    'pluginOptions' => [ 
     'uploadUrl'=>Url::to('/kw/used-cars/upload'), 
     'browseOnZoneClick'=>true, 
     'uploadAsync'=> true, 
     'maxFileCount'=> 10, 
     'minFileCount'=> 4, 
     'validateInitialCount'=> true, 
     'overwriteInitial'=> false, 

    ], 
    'pluginEvents'=>[ 
     "fileclear" => "function() { log('fileclear'); }", 
     'filebatchselected'=>'function(event, files) { 

     var $input = $("#vehicles-image_file"); 
    // alert($input); 
// trigger upload method immediately after files are selected 
$input.fileinput("upload"); 
}' 
    ], 
    'options' => [ 
     'accept' => 'image/*', 
     'multiple'=>true 

    ] 
    ]); 

操作:

public function actionUpload() 
{ 
    $model = new Vehicles(); 
    $model->image_file = UploadedFile::getInstances($model, 'image_file'); 
    // print_R($model->fld_image);exit; 
    $images = ''; 
    if ($model->image_file) { 
     foreach ($model->image_file as $file) { 
      $img_name = Yii::$app->getSecurity()->generateRandomString(); 

      $file->saveAs('uploads/' . $img_name . '.' . $file->extension); 
      $images .= $img_name.'.'.$file->extension.'###'; 

     } 
     $model->image_file = $images; 
     return true; 
     //return json_encode($model->image_file); 

    } 
} 

模型设置:

[['image_name'], 'string', 'max' => 2556], 
     [['image_file'], 'file', 'extensions' => 'jpeg, jpg, png,  gif','skipOnEmpty'=>false, 'maxSize'=>20*1024*1024, 'maxFiles'=>1000], 

上传功能:

public function actionUpload() 
{ 
    $model = new Vehicles(); 
    $model->image_file = UploadedFile::getInstances($model, 'image_file'); 
    // print_R($model->fld_image);exit; 
    $images = ''; 
    if ($model->image_file) { 
     foreach ($model->image_file as $file) { 
      $img_name = Yii::$app->getSecurity()->generateRandomString(); 

      $file->saveAs('uploads/' . $img_name . '.' . $file->extension); 
      $images .= $img_name.'.'.$file->extension.'###'; 

     } 
     $model->image_file = $images; 
     return true; 
     //return json_encode($model->image_file); 

    } 
} 
+0

也许在JS/jQuery文件中有一些冲突。检查控制台是否有任何错误。 –

回答

0

在你的modelimage_file你应该把'skipOnEmpty'=>true,上传的图像将在$_FILE