Почему проверка расширения в Yii2 работает некорректно?
В общем реализовал в правилах проверку загруженных файлов (mp3) и всё работало как и ожидалось до одного интересного момента... Если в названии файла присутствует более одной точки, то yii не пропускает этот файл выдавая ошибку о том, что формат у файла неправильный, а он ведь правильный, в конце .mp3 расширение указано. Странно конечно, что yii проверяет расширение файла по первой попавшейся точке....
Может быть есть какой то некостыльный способ изменить поведение? Или может какой то параметр перед валидацией нужно добавить? Откровенно говоря, ковырял офф сайт, но ничего подходящего не нашел.
Да и в самом деле.
По мнению Yii у файла неправильный MIME тип, но ведь проверка не проходит по расширению. Название файла копирую и даю его другому mp3 файлу и загрузка проходит успешно. Странно....
Вот сам код:
/**
* @inheritdoc
*/
public function rules()
{
return [
['audioFiles', 'file',
'skipOnEmpty' => false,
'extensions' => 'mp3',
'wrongExtension' => 'Неправильное расширения у файла "{file}". Разрешенные расширения: {extensions}',
'mimeTypes' => 'audio/*',
'wrongMimeType' => 'Неправильный MIME-тип у файла "{file}"',
'maxFiles' => 6,
'tooMany' => 'Превышен лимит ({limit}) на одновременную загрузку файлов',
'minSize' => 256,
'tooSmall' => 'Размер аудиофайла "{file}" не должен быть меньше 256кб',
'maxSize' => (1024 * 1024 * 15),
'tooBig' => 'Размер аудиофайла "{file}" не должен превышать 15мб',
'message' => 'Не удалось осуществить загрузку',
'uploadRequired' => 'Файл не был выбран', //The error message used when no file is uploaded.
]
];
}