WordPress.org

Make WordPress Core

Ticket #16458: 16458.diff

File 16458.diff, 1.2 KB (added by kurtpayne, 7 years ago)
  • wp-includes/media.php

     
    442442        if ( !is_null($dest_path) and $_dest_path = realpath($dest_path) )
    443443                $dir = $_dest_path;
    444444        $destfilename = "{$dir}/{$name}-{$suffix}.{$ext}";
     445       
     446        // If the file already exists, add a numeric suffix and increment it until
     447        // the new file name is available
     448        if ( file_exists($destfilename) ) {
     449                $i = 1;
     450                do {
     451                        $destfilename = "{$dir}/{$name}{$i}-{$suffix}.{$ext}";
     452                        $i++;
     453                } while ( file_exists($destfilename) );
     454        }
    445455
    446456        if ( IMAGETYPE_GIF == $orig_type ) {
    447457                if ( !imagegif( $newimage, $destfilename ) )
     
    451461                        return new WP_Error('resize_path_invalid', __( 'Resize path invalid' ));
    452462        } else {
    453463                // all other formats are converted to jpg
    454                 $destfilename = "{$dir}/{$name}-{$suffix}.jpg";
     464                $destfilename = substr($destfilename, 0, 0 - strlen($ext)) . 'jpg';
    455465                if ( !imagejpeg( $newimage, $destfilename, apply_filters( 'jpeg_quality', $jpeg_quality, 'image_resize' ) ) )
    456466                        return new WP_Error('resize_path_invalid', __( 'Resize path invalid' ));
    457467        }