Валидация файлов csv

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
Zdraff
Сообщения: 23
Зарегистрирован: 2013.01.30, 17:16

Валидация файлов csv

Сообщение Zdraff »

Экшн:

Код: Выделить всё

        $thisMonthFile = Yii::$app->basePath.self::rawFilesPath.'/'.date('m.Y').'.csv';
        $formModel = new PerformanceForm;
        if (Yii::$app->request->isPost) {
            $formModel->file = UploadedFile::getInstance($formModel, 'file');
            if ($formModel->validate()) {
                $formModel->file->saveAs($thisMonthFile);
            }
        }
        return $this->render('index', [
            'formModel' => $formModel,
        ]);
    }
 
Вьюшка:

Код: Выделить всё

<div class="form-body">
    <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data', 'class' => 'form-light padding-15']]); ?>
        <div class="form-group">
            <?= $form->field($formModel, 'file', [
            'template' => "{input}\n<div class=\"error\">{error}</div>",
                                    ])->fileInput(['class' => '']) ?>
        </div>
        <div class="form-group">
            <?= Html::submitButton('Загрузить', ['class' => 'btn btn-two']) ?>
        </div>
    <?php ActiveForm::end(); ?>
</div>
Модель:

Код: Выделить всё

<?php

namespace app\models;

use Yii;
use yii\base\Model;

class PerformanceForm extends Model
{
    public $file;

    public function rules()
    {
        return [
            [['file'], 'required'],
            [['file'],'file','extensions'=> ['csv', 'pdf']],
        ];
    }

    public function attributeLabels()
    {
        return [
            'file' => 'Файл',
        ];
    }

}
 
PDF загружается прекрасно, а вот файл .csv не хочет, кажет ошибку "Разрешена загрузка файлов только со следующими расширениями: csv, pdf.". При этом предварительная валидация проходит, ошибка вылетает после загрузки страницы.
Aleksey_ZX
Сообщения: 52
Зарегистрирован: 2015.08.07, 18:12

Re: Валидация файлов csv

Сообщение Aleksey_ZX »

[['file'], 'file', 'skipOnEmpty' => false, 'extensions'=>['csv'], 'checkExtensionByMimeType'=>false, 'maxSize'=>1024 * 1024 * 2],
Ответить