Upload: Correct duplicate MIME type for `.xlsx` files generated by Google Docs.
This expands the code block previously added for `.docx` files to include `.xlsx` files as well, which are known to have the same issue with `finfo_file()`. Includes a unit test case for `wp_check_filetype_and_ext()`. Reference: [https://bugs.php.net/bug.php?id=77784 PHP Bug #77784: mime_content_type() result gets doubled for .xlsx]. Follow-up to [56497]. See #57898. Built from https://develop.svn.wordpress.org/trunk@56510 git-svn-id: http://core.svn.wordpress.org/trunk@56022 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
c5a0103fb5
commit
dc9517a3e0
|
@ -3150,9 +3150,22 @@ function wp_check_filetype_and_ext( $file, $filename, $mimes = null ) {
|
|||
$real_mime = finfo_file( $finfo, $file );
|
||||
finfo_close( $finfo );
|
||||
|
||||
// finfo_file() returns redudant mime type for Google docs, see #57898.
|
||||
if ( 'application/vnd.openxmlformats-officedocument.wordprocessingml.documentapplication/vnd.openxmlformats-officedocument.wordprocessingml.document' === $real_mime ) {
|
||||
$real_mime = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
|
||||
$google_docs_types = array(
|
||||
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
||||
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
||||
);
|
||||
|
||||
foreach ( $google_docs_types as $google_docs_type ) {
|
||||
/*
|
||||
* finfo_file() can return duplicate mime type for Google docs,
|
||||
* this conditional reduces it to a single instance.
|
||||
*
|
||||
* @see https://bugs.php.net/bug.php?id=77784
|
||||
* @see https://core.trac.wordpress.org/ticket/57898
|
||||
*/
|
||||
if ( 2 === substr_count( $real_mime, $google_docs_type ) ) {
|
||||
$real_mime = $google_docs_type;
|
||||
}
|
||||
}
|
||||
|
||||
// fileinfo often misidentifies obscure files as one of these types.
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '6.4-alpha-56509';
|
||||
$wp_version = '6.4-alpha-56510';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
|
Loading…
Reference in New Issue