Make WordPress Core

Changeset 38614


Ignore:
Timestamp:
09/17/2016 05:41:27 AM (9 years ago)
Author:
aaroncampbell
Message:

Media: Improved media titles when created from filename.

Preserves spaces and generally creates more accurate, cleaner titles from filenames of uploaded media.

Props joemcgill.
Fixes #37989.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/media.php

    r38538 r38614  
    279279    }
    280280
    281     $name = $_FILES[$file_id]['name'];
    282281    $file = wp_handle_upload($_FILES[$file_id], $overrides, $time);
    283282
     
    285284        return new WP_Error( 'upload_error', $file['error'] );
    286285
    287     $basename = pathinfo( $name, PATHINFO_BASENAME );
     286    $name = pathinfo( $_FILES[$file_id]['name'], PATHINFO_FILENAME );
    288287
    289288    $url = $file['url'];
    290289    $type = $file['type'];
    291290    $file = $file['file'];
    292     $title = sanitize_title( $basename );
     291    $title = sanitize_text_field( $name );
    293292    $content = '';
    294293    $excerpt = '';
  • trunk/tests/phpunit/tests/media.php

    r38598 r38614  
    774774
    775775    /**
     776     * @ticket 37989
     777     */
     778    public function test_media_handle_upload_expected_titles() {
     779        $test_file = DIR_TESTDATA . '/images/test-image.jpg';
     780
     781        // Make a copy of this file as it gets moved during the file upload
     782        $tmp_name = wp_tempnam( $test_file );
     783
     784        copy( $test_file, $tmp_name );
     785
     786        $_FILES['upload'] = array(
     787            'tmp_name' => $tmp_name,
     788            'name'     => 'This is a test.jpg',
     789            'type'     => 'image/jpeg',
     790            'error'    => 0,
     791            'size'     => filesize( $test_file ),
     792        );
     793
     794        $post_id = media_handle_upload( 'upload', 0, array(), array( 'action' => 'test_upload_titles', 'test_form' => false ) );
     795
     796        unset( $_FILES['upload'] );
     797
     798        $post = get_post( $post_id );
     799
     800        // Clean up.
     801        wp_delete_attachment( $post_id );
     802
     803        $this->assertEquals( 'This is a test', $post->post_title );
     804    }
     805
     806    /**
    776807     * @ticket 33016
    777808     */
Note: See TracChangeset for help on using the changeset viewer.