【问题标题】:yii2 kartik FileInput - File input emptyyii2 kartik FileInput - 文件输入为空
【发布时间】:2017-01-13 12:37:05
【问题描述】:

我在 yii2 项目中使用 kartik 文件输入小部件。

http://demos.krajee.com/widget-details/fileinput

在使用“initialPreview”选项显示特定帖子的已上传图像的更新页面之前,一切都很好。预览有效,但提交表单时,文件输入为空,表单无法验证。 Poster Image (256x376) cannot be blank.

<?php
     echo $form->field($model, 'posterImage')->widget(FileInput::classname(), [
       'options' => [
        'multiple' => true,
        'accept' => 'image/*',
       ],
       'pluginOptions' => [
         'maxImageWidth' => 265,
         'maxImageHeight' => 376,
         'minImageWidth' => 265,
         'minImageHeight' => 376,
         'previewFileType' => 'image',
         'allowedFileExtensions' => [
          'jpg', 'jpeg'
          ],
          'showUpload' => false,
          'maxFileSize' => 200,
          'maxFileCount' => 1,
          'initialPreview' => [
            $model->posterImage ? Html::img($model->posterImage, ['width' => '100%']) : NULL,
           ],
           'initialPreviewConfig' => [
            ['url' => $model->posterImage],
            ],
            'initialPreviewAsData' => false,
            'overwriteInitial' => true,
              ]
                    ]);
                    ?>

【问题讨论】:

  • 您能分享一下您的model 课程吗?
  • 我认为这与模型类(我无法分享)无关。我只想上传预览(有效)而无需再次选择。
  • 你检查skipOnEmpty的验证规则yiiframework.com/doc-2.0/guide-input-file-upload.html
  • 这是个好主意。但我必须将它整合到我的设计中。让我检查一下!

标签: yii2


【解决方案1】:

您可以在 yii2 上使用 skipOnEmpty model 规则和 update scenarios

public function rules()
    {
        return [
            [['posterImage'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg'],
        ];
    }

【讨论】:

  • [['posterImage'], 'file', 'on' =&gt; 'update', 'skipOnEmpty' =&gt; true, 'extensions' =&gt; 'jpeg, jpg'], 但它不会跳过它。
【解决方案2】:

@ciprian initialPreview 仅显示图像。并且不显示上传图像的文件输入对象。所以当你重新上传时,File 对象会为空,所以抛出错误

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-17
  • 1970-01-01
  • 2015-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多