【问题标题】:Yii2 Kartik fileinput validationYii2 Kartik 文件输入验证
【发布时间】:2016-08-20 19:57:43
【问题描述】:

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

    }
}

【问题讨论】:

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

标签: file-io yii2


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 2021-12-19
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多