dklight
@dklight
php кодер - level 2.5

Как загрузить файлы с произвольными расширениями в yii2?

делаю как написано тут
правила такие
public function rules(){
        return [
          [['file'], 'file',
              'extensions' => 'png, jpg, jpeg, gif, docx, xlsx, pdf, djvu, rar, zip, 7zip,txt',
              'maxSize' => Yii::$app->params['fileMaxSize'],
              'skipOnEmpty' => false,
              'maxFiles' => 5,
              //'tooLarge'=>'File has to be smaller than 50MB'
              ],
            [ ['file'], 'required' ],
        ];
    }

так вот, pdf файлы он загружает, также txt, docs, но например png или rar не хочет, хотя они указаны в с списке extensions, при этом он ссылается на этот же список...
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ответы на вопрос 1
dklight
@dklight Автор вопроса
php кодер - level 2.5
Нашел частичное решение проблемы, если посмотреть сюда, а именно перейти к file и к 'checkExtensionByMimeType', и изменить значение по умолчанию на false, то получается решение проблемы, а именно теперь можно загружать файлы, формата rar. Почему именно этот формат не удается загружать без проверки соответствия майм тайпа непонятно.

В результате получено:

public function rules(){
    return [            
        ['file', 'file', 'extensions' => 'tar,png, jpg, jpeg, gif, docx, xlsx, pdf, rar, djvu, zip, 7z, txt,', 'maxSize' => Yii::$app->params['fileMaxSize'], 'maxFiles' => 5, 'checkExtensionByMimeType' => false],
        [ ['file'], 'required' ],
    ];
}

А частичное потому, что приведение checkExtensionByMimeType в false не всегда может быть хорошо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы