WordPress.org

Make WordPress Core

Ticket #16191: 16191.diff

File 16191.diff, 2.1 KB (added by mdawaffe, 2 years ago)

PoC

  • wp-includes/default-filters.php

     
    186186add_filter( 'pings_open',           '_close_comments_for_old_post', 10, 2 ); 
    187187add_filter( 'editable_slug',        'urldecode'                           ); 
    188188add_filter( 'nav_menu_meta_box_object', '_wp_nav_menu_meta_box_object'    ); 
     189add_filter( 'wp_handle_upload_prefilter', 'wp_fix_original_filename'      ); 
    189190 
    190191// Atom SSL support 
    191192add_filter( 'atom_service_url','atom_service_url_filter' ); 
  • wp-admin/includes/file.php

     
    10791079        return false; 
    10801080} 
    10811081 
     1082function wp_fix_original_filename( $file ) { 
     1083        if ( !isset( $_POST['original_file_name'] ) ) 
     1084                return $file; 
     1085 
     1086        $original_name = basename( str_replace( '\\', '/', stripslashes( $_POST['original_file_name'] ) ) ); 
     1087 
     1088        if ( str_replace( '"', '%22', $original_name ) == $file['name'] ) 
     1089                $file['name'] = $original_name; 
     1090 
     1091        return $file; 
     1092} 
     1093 
    10821094?> 
  • wp-admin/includes/media.php

     
    15301530                }; 
    15311531                swfu = new SWFUpload(settings); 
    15321532}; 
     1533jQuery( function($) { 
     1534        $( '#file-form' ).submit( function() { 
     1535                $( '#original-file-name' ).val( $( '#async-upload' ).val() ); 
     1536        } ); 
     1537} ); 
    15331538//]]> 
    15341539</script> 
    15351540 
     
    15521557        <p id="async-upload-wrap"> 
    15531558                <label class="screen-reader-text" for="async-upload"><?php _e('Upload'); ?></label> 
    15541559                <input type="file" name="async-upload" id="async-upload" /> 
     1560                <input type="hidden" name="original_file_name" id="original-file-name" /> 
    15551561                <?php submit_button( __( 'Upload' ), 'button', 'html-upload', false ); ?> 
    15561562                <a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php _e('Cancel'); ?></a> 
    15571563        </p>