Fix #18094: Support for composite file extension validation

This commit is contained in:
DarkDef
2020-07-03 19:06:49 +03:00
committed by GitHub
parent 54be5503c9
commit f944e1f039
5 changed files with 46 additions and 4 deletions

View File

@ -408,10 +408,18 @@ yii.validation = (function ($) {
function validateFile(file, messages, options) {
if (options.extensions && options.extensions.length > 0) {
var index = file.name.lastIndexOf('.');
var ext = !~index ? '' : file.name.substr(index + 1, file.name.length).toLowerCase();
var found = false;
var filename = file.name.toLowerCase();
if (!~options.extensions.indexOf(ext)) {
for (var index=0; index < options.extensions.length; index++) {
var ext = options.extensions[index].toLowerCase();
if (filename.substr(filename.length - options.extensions[index].length - 1) === ('.' + ext)) {
found = true;
break;
}
}
if (!found) {
messages.push(options.wrongExtension.replace(/\{file\}/g, file.name));
}
}