Make WordPress Core

Opened 6 years ago

Last modified 6 years ago

#45670 new defect (bug)

Getting different MIME type from function finfo_file.

Reported by: mahesh901122's profile Mahesh901122 Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: 5.0.1
Component: Upload Keywords: 2nd-opinion
Focuses: Cc:

Description

Getting different REAL MIME type from function finfo_file.

The issue maybe the different Operating Systems or due to Different PHP versions.

But, While debugging the issue, When I try to upload the XML on localhost I got the text/xml as a real MIME type and on live site its application/xml.

Below is the debugging steps:

File: /wp-includes/functions.php line 2346

// Validate files that didn't get validated during previous checks.
if ( $type && ! $real_mime && extension_loaded( 'fileinfo' ) ) {
	$finfo = finfo_open( FILEINFO_MIME_TYPE );
	$real_mime = finfo_file( $finfo, $file );
	finfo_close( $finfo );

	// @DEBUGGING...
	echo '<pre>';
	var_dump( FILEINFO_MIME_TYPE ) . '<br/>';
	var_dump( $finfo ) . '<br/>';
	var_dump( $file ) . '<br/>';
	var_dump( $real_mime ) . '<br/>';
	wp_die();

The output of the above code is below on LOCALHOST:

  • PHP: Version 7.2.4
  • System: Windows NT M 6.3 build 9600 (Windows 8.1 Professional Edition) i586
int(16)
resource(767) of type (Unknown)
string(46) "C:\Users\Yum\AppData\Local\Temp/wxr-LccAYF.tmp"
string(8) "text/xml"

But, It is different on the LIVE site.

  • PHP: Version 7.0.32-4+ubuntu16.04.1+deb.sury.org+1
  • System: Linux ip-172-31-25-204 4.4.0-134-generic #160-Ubuntu SMP Wed Aug 15 14:58:00 UTC 2018 x86_64
int(16)
resource(747) of type (Unknown)
string(19) "/tmp/wxr-YNkiH5.tmp"
string(15) "application/xml"

Change History (4)

#1 @Mahesh901122
6 years ago

Looks like this is the bug of PHP https://bugs.php.net/bug.php?id=75380

Another one - https://bugs.php.net/bug.php?id=76254

All other related to MIME - https://bugs.php.net/search.php?cmd=display&search_for=mime&x=0&y=0

Testing PHP Code:

echo 'PHP Version: ' . phpversion() . "<br/><br/>";
echo 'file.vtt | ' . mime_content_type( 'file.vtt') . "<br/>";
echo 'file.xml | ' . mime_content_type( 'file.xml') . "<br/>";

On Localhost:

PHP Version: 7.2.4
file.vtt | text/plain
file.xml | text/xml

On Live

PHP Version: 7.0.32-4+ubuntu16.04.1+deb.sury.org+1
file.vtt | text/plain
file.xml | application/xml
Last edited 6 years ago by Mahesh901122 (previous) (diff)

#2 @Mahesh901122
6 years ago

  • Component changed from Filesystem API to Upload

#4 @Otto42
6 years ago

Similar report here: https://wordpress.org/support/topic/xlsm-extension-mis-recognized/

Seems that maybe sticking to one mime type per extension might not be the greatest way to go about it.

Note: See TracTickets for help on using tickets.