【问题标题】:Yii2: Combining Kartik's FileInput & Kartik's DetailViewYii2:结合 Kartik 的 FileInput 和 Kartik 的 DetailView
【发布时间】:2017-05-17 14:12:54
【问题描述】:

我正在尝试使用 Kartik 的 FileInput 上传单文件。

通过标准创建表单执行此操作时一切正常,因为以下返回 non-null

$filedata = UploadedFile::getInstance($model, 'filedata'); 

但是,在编辑模式下进入 Kartik 的 DetailView 并尝试更新文件时,它总是返回 null

view.php 我有:

[
    'attribute' => 'filedata',
    'visible' => Yii::$app->user->can('doIt'),
    'type' => DetailView::INPUT_FILEINPUT,
    'rowOptions' => ['class' => 'kv-view-hidden'],
    'widgetOptions' => ['options' => ['accept' => 'application/pdf'],
    'pluginOptions' => [
        'showUpload' => false,
        'allowedFileExtensions' => ['pdf'],
        'initialCaption' => $model->filename,
    ],
    'pluginEvents' => [
        'filecleared' => <whatever>,
        'fileloaded'  => <whatever>,
    ],
  ],
],   

_form.php(确实有效):

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>

    <?= $form->field($model, 'filedata')->widget(FileInput::classname(), [
        'options' => ['accept' => 'application/pdf'],
        'pluginOptions' => [
            'showUpload' => false,
            'allowedFileExtensions' => ['pdf'],
            'initialCaption' => $model->getOldAttribute('filename'),
        ],
        'pluginEvents' => [
            'filecleared' => <whatever>,
            'fileloaded'  => <whatever>,
        ],
    ]) 
?>

有什么想法吗? (顺便说一句,不知道在view.php 中是否需要'multipart/form-data',就像在_form.php 中一样,所以欢迎任何人确认这一点并提供一些细节)。

【问题讨论】:

    标签: php file-upload yii2 detailview kartik-v


    【解决方案1】:

    当然_form.phpview.php都需要multipart/form-data,如下:

    'formOptions' => ['options' => ['enctype' => 'multipart/form-data']],
    'attributes' => [
    ...
    [
        'attribute' => 'filedata',
        'visible' => Yii::$app->user->can('doIt'),
        'type' => DetailView::INPUT_FILEINPUT,
        'rowOptions' => ['class' => 'kv-view-hidden'],
        'widgetOptions' => ['options' => ['accept' => 'application/pdf'],
        'pluginOptions' => [
            'showUpload' => false,
            'allowedFileExtensions' => ['pdf'],
            'initialCaption' => $model->filename,
        ],
        'pluginEvents' => [
            'filecleared' => <whatever>,
            'fileloaded'  => <whatever>,
        ],
      ],
    ],
    ....
    ]   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 2018-04-26
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多