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.



git-svn-id: https://develop.svn.wordpress.org/trunk@38614 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Aaron D. Campbell 2016-09-17 05:41:27 +00:00
parent a803a33c04
commit 6eb3e0bf5f
2 changed files with 33 additions and 3 deletions

View File

@ -278,18 +278,17 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override
$time = $post->post_date;
}
$name = $_FILES[$file_id]['name'];
$file = wp_handle_upload($_FILES[$file_id], $overrides, $time);
if ( isset($file['error']) )
return new WP_Error( 'upload_error', $file['error'] );
$basename = pathinfo( $name, PATHINFO_BASENAME );
$name = pathinfo( $_FILES[$file_id]['name'], PATHINFO_FILENAME );
$url = $file['url'];
$type = $file['type'];
$file = $file['file'];
$title = sanitize_title( $basename );
$title = sanitize_text_field( $name );
$content = '';
$excerpt = '';

View File

@ -772,6 +772,37 @@ VIDEO;
$this->assertEquals( 'This is a comment. / Это комментарий. / Βλέπετε ένα σχόλιο.', $post->post_excerpt );
}
/**
* @ticket 37989
*/
public function test_media_handle_upload_expected_titles() {
$test_file = DIR_TESTDATA . '/images/test-image.jpg';
// Make a copy of this file as it gets moved during the file upload
$tmp_name = wp_tempnam( $test_file );
copy( $test_file, $tmp_name );
$_FILES['upload'] = array(
'tmp_name' => $tmp_name,
'name' => 'This is a test.jpg',
'type' => 'image/jpeg',
'error' => 0,
'size' => filesize( $test_file ),
);
$post_id = media_handle_upload( 'upload', 0, array(), array( 'action' => 'test_upload_titles', 'test_form' => false ) );
unset( $_FILES['upload'] );
$post = get_post( $post_id );
// Clean up.
wp_delete_attachment( $post_id );
$this->assertEquals( 'This is a test', $post->post_title );
}
/**
* @ticket 33016
*/