Ошибка при загрузке файла

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Haziel
Сообщения: 3
Зарегистрирован: 2017.07.24, 01:54

Ошибка при загрузке файла

Сообщение Haziel »

Добрый день.

Прошу помощи.
Возникает рандомная ошибка валидации при загрузке файла любого типа (кроме изображений, если установить image, вместо file).
Под рандомной ошибок имею ввиду: превышен размер файла (почему-то пишет 2мб, когда он 5 мб), неверный тип файла и тд.

Если валидацию убрать, то файл просто не загружается.

Вьюха:

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

      
                <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
                    <?php echo $form->field($model, 'json_file')->widget(FileInput::classname(), [
                        'options' => [
                            'accept' => 'application/json',
                        ],
                        'pluginOptions' => [
                            'showPreview' => false,
                        ],
                    ]); ?>
                <?php ActiveForm::end(); ?>
  
Контроллер:

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

       $model = new LoadDataForm();
       
        if ($model->load(Yii::$app->request->post())) {
            $model->json_file = UploadedFile::getInstance($model, 'json_file');
            $model->json_load();
        }
Модель:

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

    public function rules()
    {
        return [
            [['json_file'],
                'file',
                'skipOnEmpty' => false,
                'extensions' => 'json',
                'mimeTypes' => 'application/json',
                'maxSize' => 1024 * 1024 * 5,
            ]
        ];
    }
    
   public function json_load()
    {
        if ($this->validate()) {
            $this->json_file->saveAs($tmp_file_path);
        }
    }
dmg
Сообщения: 685
Зарегистрирован: 2012.10.15, 03:09

Re: Ошибка при загрузке файла

Сообщение dmg »

Проверьте что выдаёт fileinfo() на ваш файл.
Haziel
Сообщения: 3
Зарегистрирован: 2017.07.24, 01:54

Re: Ошибка при загрузке файла

Сообщение Haziel »

dmg писал(а): 2017.07.24, 11:41 Проверьте что выдаёт fileinfo() на ваш файл.
Какую конкретно информацию по файлу нужно получить?

И я бы не привязывался конкретно к файлу т.к. я пробовал и другие файлы и с другими расширениями.
Так же пробовал и на локале и на хостинге - результат один.
Haziel
Сообщения: 3
Зарегистрирован: 2017.07.24, 01:54

Re: Ошибка при загрузке файла

Сообщение Haziel »

В общем.... Без комментариев от меня....

В пхп на локале было установлено стандартное ограничение в 2 Мб макс на инпут файлов.
И по видимому yii2 брал ошибку о размере в 2мб от туда и по этому сразу не понял....

Вот только по какой-то причине остается ошибка на тип файла json.
Даже если в валидацию добавить MIME типы plain/text и расширения txt, text (по дурацкой логике), то все равно валидатор ругается на расширение файла.

Перевел расширение файла в txt в он загружается.

Пока не пойму чем json не угодил yii2.


UPD:
Посмотрел расширение загружаемого файла: $this->json_file->extension;
Говорит, что json. При этом тут же ошибка, что доступен для загрузки только json расширение.
Ответить