From 83ccac4372abce9cecd3113e54805cf7bfc1a540 Mon Sep 17 00:00:00 2001 From: ryan Date: Tue, 18 Dec 2007 03:32:43 +0000 Subject: [PATCH] unique filename fixes from tellyworth. fixes #5482 git-svn-id: http://svn.automattic.com/wordpress/trunk@6401 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/file.php | 2 +- wp-includes/functions.php | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/wp-admin/includes/file.php b/wp-admin/includes/file.php index 2a2908b89..cc09c7503 100644 --- a/wp-admin/includes/file.php +++ b/wp-admin/includes/file.php @@ -147,7 +147,7 @@ function wp_handle_upload( &$file, $overrides = false ) { if ( ! ( ( $uploads = wp_upload_dir() ) && false === $uploads['error'] ) ) return $upload_error_handler( $file, $uploads['error'] ); - $filename = wp_unique_filename( $uploads['path'], $file['name'], $ext, $unique_filename_callback ); + $filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback ); // Move the file to the uploads dir $new_file = $uploads['path'] . "/$filename"; diff --git a/wp-includes/functions.php b/wp-includes/functions.php index 74d10c90b..29bffda90 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -1064,7 +1064,12 @@ function wp_upload_dir( $time = NULL ) { } // return a filename that is sanitized and unique for the given directory -function wp_unique_filename( $dir, $name, $ext, $unique_filename_callback = NULL ) { +function wp_unique_filename( $dir, $filename, $unique_filename_callback = NULL ) { + + // separate the filename into a name and extension + $info = pathinfo($filename); + $ext = $info['extension']; + $name = basename($filename, ".{$ext}"); // Increment the file number until we have a unique file to save in $dir. Use $override['unique_filename_callback'] if supplied. if ( $unique_filename_callback && function_exists( $unique_filename_callback ) ) { @@ -1103,12 +1108,8 @@ function wp_upload_bits( $name, $deprecated, $bits, $time = NULL ) { if ( $upload['error'] !== false ) return $upload; - - $filename = $name; - $path_parts = pathinfo( $filename ); - $ext = $path_parts['extension']; - $filename = wp_unique_filename( $upload['path'], $path_parts['basename'], $ext ); + $filename = wp_unique_filename( $upload['path'], $name ); $new_file = $upload['path'] . "/$filename"; if ( ! wp_mkdir_p( dirname( $new_file ) ) ) {