1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-30 21:40:43 +02:00

[ticket/16076] addFileFilter to check max file size per mime type

PHPBB3-16076
This commit is contained in:
mrgoldy
2019-08-25 21:24:22 +02:00
parent 9c15594fe4
commit 8bc056ebe6
3 changed files with 63 additions and 20 deletions

View File

@@ -446,6 +446,44 @@ phpbb.plupload.fileError = function(file, error) {
phpbb.plupload.uploader = new plupload.Uploader(phpbb.plupload.config);
phpbb.plupload.initialize();
/**
* Add a file filter to check for max file sizes per mime type.
*/
plupload.addFileFilter('mime_types_max_file_size', function(types, file, cb) {
if (file.size !== 'undefined') {
$(types).each(function(i, type) {
let extensions = [],
exts_array = type.extensions.split(',');
$(exts_array).each(function(i, extension) {
/^\s*\*\s*$/.test(extension) ? extensions.push("\\.*") : extensions.push("\\." + extension.replace(new RegExp("[" + "/^$.*+?|()[]{}\\".replace(/./g, "\\$&") + "]", "g"), "\\$&"));
});
let regex = new RegExp("(" + extensions.join("|") + ")$", "i");
if (regex.test(file.name)) {
if (type.max_file_size !== 'undefined' && type.max_file_size) {
if (file.size > type.max_file_size) {
phpbb.plupload.uploader.trigger('Error', {
code: plupload.FILE_SIZE_ERROR,
message: plupload.translate('File size error.'),
file: file
});
cb(false);
} else {
cb(true);
}
} else {
cb(true);
}
return false;
}
});
}
});
var $fileList = $('#file-list');
/**