WordPress.org

Make WordPress Core

Ticket #14781: php_upload_func.patch

File php_upload_func.patch, 1.3 KB (added by Ornani, 9 years ago)
  • wp-admin/includes/class-wp-upgrader.php

     
    147147                if ( $wp_filesystem->is_dir($working_dir) )
    148148                        $wp_filesystem->delete($working_dir, true);
    149149
    150                 // Unzip package to working directory
    151                 $result = unzip_file($package, $working_dir); //TODO optimizations, Copy when Move/Rename would suffice?
     150                $extension = pathinfo($package, PATHINFO_EXTENSION);
     151               
     152                // Make uploading a PHP file instead of a zip archive possible
     153                if ( 'php' == $extension ) {
     154                        // Create a new folder
     155                        mkdir($working_dir);
     156                       
     157                        // Copy the PHP file into the new foler
     158                        $result = rename($package, $working_dir . '/' . basename($package));
     159                } else {
     160                        // Unzip package to working directory
     161                        $result = unzip_file($package, $working_dir); //TODO optimizations, Copy when Move/Rename would suffice?
     162                       
     163                        // Once extracted, delete the package if required.
     164                        if ( $delete_package )
     165                                unlink($package);
     166                }
    152167
    153                 // Once extracted, delete the package if required.
    154                 if ( $delete_package )
    155                         unlink($package);
    156 
    157168                if ( is_wp_error($result) ) {
    158169                        $wp_filesystem->delete($working_dir, true);
    159170                        return $result;