WordPress.org

Make WordPress Core

Changeset 40403


Ignore:
Timestamp:
04/10/17 14:27:23 (8 months ago)
Author:
swissspidy
Message:

Media: Improve handling of non-image files in wp_get_image_mime.

This prevents non-image fileypes from returning a mime type of "application/octet-stream" when exif_imagetype() returns false.

Props blobfolio.
Fixes #40017.

Merges [40397] to the 4.7 branch.

Location:
branches/4.7
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/4.7

  • branches/4.7/src/wp-includes/functions.php

    r40134 r40403  
    23672367    try { 
    23682368        if ( is_callable( 'exif_imagetype' ) ) { 
    2369             $mime = image_type_to_mime_type( exif_imagetype( $file ) ); 
     2369            $imagetype = exif_imagetype( $file ); 
     2370            $mime = ( $imagetype ) ? image_type_to_mime_type( $imagetype ) : false; 
    23702371        } elseif ( function_exists( 'getimagesize' ) ) { 
    23712372            $imagesize = getimagesize( $file ); 
  • branches/4.7/tests/phpunit/tests/functions.php

    r40134 r40403  
    901901 
    902902    /** 
     903     * @ticket 40017 
     904     * @dataProvider _wp_get_image_mime 
     905     */ 
     906    public function test_wp_get_image_mime( $file, $expected ) { 
     907        if ( ! is_callable( 'exif_imagetype' ) && ! function_exists( 'getimagesize' ) ) { 
     908            $this->markTestSkipped( 'The exif PHP extension is not loaded.' ); 
     909        } 
     910 
     911        $this->assertEquals( $expected, wp_get_image_mime( $file ) ); 
     912    } 
     913 
     914    /** 
    903915     * @ticket 39550 
    904916     * @dataProvider _wp_check_filetype_and_ext_data 
     
    976988        $mimes['woff'] = 'application/font-woff'; 
    977989        return $mimes; 
     990    } 
     991 
     992    /** 
     993     * Data profider for test_wp_get_image_mime(); 
     994     */ 
     995    public function _wp_get_image_mime() { 
     996        $data = array( 
     997            // Standard JPEG. 
     998            array( 
     999                DIR_TESTDATA . '/images/test-image.jpg', 
     1000                'image/jpeg', 
     1001            ), 
     1002            // Standard GIF. 
     1003            array( 
     1004                DIR_TESTDATA . '/images/test-image.gif', 
     1005                'image/gif', 
     1006            ), 
     1007            // Standard PNG. 
     1008            array( 
     1009                DIR_TESTDATA . '/images/test-image.png', 
     1010                'image/png', 
     1011            ), 
     1012            // Image with wrong extension. 
     1013            array( 
     1014                DIR_TESTDATA . '/images/test-image-mime-jpg.png', 
     1015                'image/jpeg', 
     1016            ), 
     1017            // Not an image. 
     1018            array( 
     1019                DIR_TESTDATA . '/uploads/dashicons.woff', 
     1020                false, 
     1021            ), 
     1022        ); 
     1023 
     1024        return $data; 
    9781025    } 
    9791026 
Note: See TracChangeset for help on using the changeset viewer.