diff --git a/common/framework/filters/filenamefilter.php b/common/framework/filters/filenamefilter.php index 59a4b55b5..1505983f0 100644 --- a/common/framework/filters/filenamefilter.php +++ b/common/framework/filters/filenamefilter.php @@ -97,7 +97,12 @@ class FilenameFilter */ public static function isDirectDownload($filename) { - if (preg_match('/\.(gif|jpe?g|png|webp|mp3|wav|ogg|flac|aac|mp4|webm|ogv)$/i', $filename)) + $images = 'gif|jpe?g|png|webp'; + $audios = 'mp3|wav|ogg|flac|aac'; + $videos = 'mp4|webm|ogv'; + $legacy = 'avi|as[fx]|flv|m4[av]|midi?|mkv|moo?v|mpe?g|qt|r[am]m?|wm[av]'; + + if (preg_match(sprintf('/\.(?:%s|%s|%s|%s)$/i', $images, $audios, $videos, $legacy), $filename)) { return true; }