Wordpress 4.5.3
[autoinstalls/wordpress.git] / wp-includes / formatting.php
index 97a290ade34836ff98bb0c83280d43027fc707e4..9f4597d1779453e80a0fe67ad308188819d7e0bd 100644 (file)
@@ -1364,7 +1364,8 @@ function remove_accents( $string ) {
  * operating systems and special characters requiring special escaping
  * to manipulate at the command line. Replaces spaces and consecutive
  * dashes with a single dash. Trims period, dash and underscore from beginning
- * and end of filename.
+ * and end of filename. It is not guaranteed that this function will return a
+ * filename that is allowed to be uploaded.
  *
  * @since 2.1.0
  *
@@ -1389,6 +1390,14 @@ function sanitize_file_name( $filename ) {
        $filename = preg_replace( '/[\r\n\t -]+/', '-', $filename );
        $filename = trim( $filename, '.-_' );
 
+       if ( false === strpos( $filename, '.' ) ) {
+               $mime_types = wp_get_mime_types();
+               $filetype = wp_check_filetype( 'test.' . $filename, $mime_types );
+               if ( $filetype['ext'] === $filename ) {
+                       $filename = 'unnamed-file.' . $filetype['ext'];
+               }
+       }
+
        // Split the filename into a base and extension[s]
        $parts = explode('.', $filename);