WordPress.org

Make WordPress Core

Changeset 7840


Ignore:
Timestamp:
04/25/08 21:34:54 (7 years ago)
Author:
ryan
Message:

tempnam workarounds from DD32. see #6465

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/file.php

    r7644 r7840  
    5555 
    5656    return '/tmp/'; 
     57} 
     58 
     59function wp_tempnam($filename = '', $dir = ''){ 
     60    if ( empty($dir) ) 
     61        $dir = get_temp_dir(); 
     62    $filename = basename($filename); 
     63    if ( empty($filename) ) 
     64        $filename = time(); 
     65 
     66    $filename = $dir . wp_unique_filename($dir, $filename); 
     67    touch($filename); 
     68    return $filename; 
    5769} 
    5870 
     
    201213        return new WP_Error('http_no_url', __('Invalid URL Provided')); 
    202214 
    203     $tmpfname = tempnam(get_temp_dir(), 'wpupdate'); 
     215    $tmpfname = wp_tempnam($url); 
    204216    if( ! $tmpfname ) 
    205217        return new WP_Error('http_no_file', __('Could not create Temporary file')); 
     
    298310} 
    299311 
    300 function WP_Filesystem( $args = false, $preference = false ) { 
     312function WP_Filesystem( $args = false ) { 
    301313    global $wp_filesystem; 
    302314 
    303     $method = get_filesystem_method($preference); 
     315    $method = get_filesystem_method(); 
    304316    if ( ! $method ) 
    305317        return false; 
     
    320332 
    321333function get_filesystem_method() { 
    322     $tempFile = tempnam(get_temp_dir(), 'WPU'); 
    323  
    324     if ( getmyuid() == fileowner($tempFile) ) { 
    325         unlink($tempFile); 
    326         return 'direct'; 
    327     } else { 
    328         unlink($tempFile); 
    329     } 
    330  
    331     if ( extension_loaded('ftp') ) return 'ftpext'; 
    332     if ( extension_loaded('sockets') || function_exists('fsockopen') ) return 'ftpsockets'; //Sockets: Socket extension; PHP Mode: FSockopen / fwrite / fread 
    333     return false; 
     334    $method = false; 
     335    if( function_exists('getmyuid') && function_exists('fileowner') ){ 
     336        $temp_file = wp_tempnam(); 
     337        if ( getmyuid() == fileowner($temp_file) ) 
     338            $method = 'direct'; 
     339        unlink($temp_file); 
     340    } 
     341 
     342    if ( ! $method && extension_loaded('ftp') ) $method = 'ftpext'; 
     343    if ( ! $method && ( extension_loaded('sockets') || function_exists('fsockopen') ) ) $method = 'ftpsockets'; //Sockets: Socket extension; PHP Mode: FSockopen / fwrite / fread 
     344    return apply_filters('filesystem_method', $method); 
    334345} 
    335346 
Note: See TracChangeset for help on using the changeset viewer.