当前位置: 首页 > 知识库问答 >
问题:

Yii2 Kartik文件输入验证

刁璞
2023-03-14

我正在使用kartik文件输入。

我无法验证,即在提供所需文件时仍然显示验证错误。下面是我的代码。文件已正确上载。但仍然显示“请上传一个文件。”

视图:

 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);

    }
}

共有1个答案

姚晋
2023-03-14

在您的模型image_file中,您应该将'skipOnBackty'=

 类似资料:
  • 目录表 文件 使用文件 储存器 储存与取储存 概括 在很多时候,你会想要让你的程序与用户(可能是你自己)交互。你会从用户那里得到输入,然后打印一些结果。我们可以分别使用raw_input和print语句来完成这些功能。对于输出,你也可以使用多种多样的str(字符串)类。例如,你能够使用rjust方法来得到一个按一定宽度右对齐的字符串。利用help(str)获得更多详情。 另一个常用的输入/输出类型

  • 文件 std::fs::File 本身实现了 Read 和 Write trait,所以文件的输入输出非常简单,只要得到一个 File 类型实例就可以调用读写接口进行文件输入与输出操作了。而要得到 File 就得让操作系统打开(open)或新建(create)一个文件。还是拿例子来说明 use std::io; use std::io::prelude::*; use std::fs::File;

  • 根据经验,您永远不应该信任从最终用户收到的数据, 并且应该在充分利用之前对其进行验证。 要给 model 填充其所需的用户输入数据,你可以调用 yii\base\Model::validate() 方法验证它们。该方法会返回一个布尔值,指明是否通过验证。若没有通过,你能通过 yii\base\Model::$errors 属性获取相应的报错信息。比如, $model = new \app\mode

  • 问题内容: 我正在使用JavaFX和Scene Builder,并且有一个带有文本字段的表单。这些文本字段中的三个从字符串解析为双精度。 我希望它们是学校成绩,因此只能将其设置为1.0到6.0之间。不应允许用户写“ 2.34.4”之类的内容,但可以写“ 5.5”或“ 2.9”之类的内容。 验证已解析字段: 如何测试用户输入的值是否正确? 我已经在Stackoverflow和Google上进行了搜索

  • 我在验证文本框中的用户输入时遇到了一些问题,我还没有找到解决方案。 基本上,该程序是一个BMI计算器,当用户选择“计算”按钮时,我正在尝试验证用户输入的“性别”、“身高”和“体重”。以下是我到目前为止的代码: 我需要验证这些输入的原因是,例如,如果用户为“高度”输入输入一个字符串或什么都不输入,计算将无法工作,因此程序将中断。我曾想过使用某种形式的布尔变量和循环来解决这个问题,但我对如何做到这一点

  • 当使用外部JavaScript库或新的宿主API时,你需要一个声明文件(.d.ts)定义程序库的shape。 这个手册包含了写.d.ts文件的高级概念,并带有一些例子,告诉你怎么去写一个声明文件。 指导与说明 流程 最好从程序库的文档开始写.d.ts文件,而不是代码。 这样保证不会被具体实现所干扰,而且相比于JS代码更易读。 下面的例子会假设你正在参照文档写声明文件。 命名空间 当定义接口(例如: