Make WordPress Core

Changeset 12274


Ignore:
Timestamp:
11/25/2009 05:04:30 AM (16 years ago)
Author:
azaozz
Message:

Set uploaded files extensions to lower case, fixes #11218

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/functions.php

    r12239 r12274  
    21062106    // separate the filename into a name and extension
    21072107    $info = pathinfo($filename);
    2108     $ext = !empty($info['extension']) ? $info['extension'] : '';
    2109     $name = basename($filename, ".{$ext}");
     2108    $ext = !empty($info['extension']) ? '.' . $info['extension'] : '';
     2109    $name = basename($filename, $ext);
    21102110
    21112111    // edge case: if file is named '.ext', treat as an empty name
    2112     if( $name === ".$ext" )
     2112    if( $name === $ext )
    21132113        $name = '';
    21142114
     
    21192119        $number = '';
    21202120
    2121         if ( !empty( $ext ) )
    2122             $ext = ".$ext";
     2121        // change '.ext' to lower case
     2122        if ( $ext && strtolower($ext) != $ext ) {
     2123            $ext2 = strtolower($ext);
     2124            $filename2 = preg_replace( '|' . preg_quote($ext) . '$|', $ext2, $filename );
     2125
     2126            // check for both lower and upper case extension or image sub-sizes may be overwritten
     2127            while ( file_exists($dir . "/$filename") || file_exists($dir . "/$filename2") ) {
     2128                $new_number = $number + 1;
     2129                $filename = str_replace( "$number$ext", "$new_number$ext", $filename );
     2130                $filename2 = str_replace( "$number$ext2", "$new_number$ext2", $filename2 );
     2131                $number = $new_number;
     2132            }
     2133            return $filename2;
     2134        }
    21232135
    21242136        while ( file_exists( $dir . "/$filename" ) ) {
Note: See TracChangeset for help on using the changeset viewer.