diff --git a/src/wp-includes/functions.php b/src/wp-includes/functions.php index 173fb80190..a751ac04a5 100644 --- a/src/wp-includes/functions.php +++ b/src/wp-includes/functions.php @@ -2049,7 +2049,7 @@ function wp_check_filetype( $filename, $mimes = null ) { $ext = false; foreach ( $mimes as $ext_preg => $mime_match ) { - $ext_preg = '!\.(' . $ext_preg . ')$!i'; + $ext_preg = '!\.(' . $ext_preg . ')(\?.*)?$!i'; if ( preg_match( $ext_preg, $filename, $ext_matches ) ) { $type = $mime_match; $ext = $ext_matches[1]; diff --git a/tests/phpunit/tests/media.php b/tests/phpunit/tests/media.php index c22bf623fc..4523e4ee3b 100644 --- a/tests/phpunit/tests/media.php +++ b/tests/phpunit/tests/media.php @@ -467,4 +467,13 @@ VIDEO; return $dir; } + function test_wp_check_filetype() { + $url = 'http://example.com/testFile.mp4?autoplay=true&otherstuff=false'; + $filetype = wp_check_filetype( $url ); + $expected = array( + 'ext' => 'mp4', + 'type' => 'video/mp4' + ); + $this->assertEquals( $expected, $filetype ); + } }