diff options
-rw-r--r-- | wp-admin/includes/file.php | 2 | ||||
-rw-r--r-- | wp-admin/includes/mu.php | 24 | ||||
-rw-r--r-- | wp-includes/wpmu-functions.php | 10 |
3 files changed, 26 insertions, 10 deletions
diff --git a/wp-admin/includes/file.php b/wp-admin/includes/file.php index 2d58852..25d9c26 100644 --- a/wp-admin/includes/file.php +++ b/wp-admin/includes/file.php @@ -88,6 +88,8 @@ function wp_handle_upload( &$file, $overrides = false ) { } } + $file = apply_filters( 'wp_handle_upload_prefilter', $file ); + // You may define your own function and pass the name in $overrides['upload_error_handler'] $upload_error_handler = 'wp_handle_upload_error'; diff --git a/wp-admin/includes/mu.php b/wp-admin/includes/mu.php index cbf5c9d..90d0343 100644 --- a/wp-admin/includes/mu.php +++ b/wp-admin/includes/mu.php @@ -1,5 +1,29 @@ <?php +function check_upload_size( $file ) { + + if( $file[ 'error' ] != '0' ) // there's already an error + return $file; + + $space_allowed = 1048576*get_space_allowed(); + $space_used = get_dirsize( constant( "ABSPATH" ) . constant( "UPLOADS" ) ); + $space_left = $space_allowed - $space_used; + $file_size = filesize( $file[ 'tmp_name' ]); + if( $space_left < $file_size ) + $file[ 'error' ] = sprintf( __( 'Not enough space to upload. %1$sKb needed.' ), number_format( ($file_size - $space_left) /1024 ) ); + if( $file_size > ( 1024 * get_site_option( 'fileupload_maxk', 1500 ) ) ) + $file['error'] = sprintf(__('This file is too big. Files must be less than %1$s Kb in size.'), get_site_option( 'fileupload_maxk', 1500 ) ); + if( upload_is_user_over_quota( false ) ) { + $file['error'] = __('You have used your space quota. Please delete files before uploading.'); + } + if( $file[ 'error' ] != '0' ) + wp_die( $file[ 'error' ] . ' <a href="javascript:history.go(-1)">' . __( 'Back' ) . '</a>' ); + + return $file; + +} +add_filter( 'wp_handle_upload_prefilter', 'check_upload_size' ); + function wpmu_delete_blog($blog_id, $drop = false) { global $wpdb, $wpmuBaseTablePrefix; diff --git a/wp-includes/wpmu-functions.php b/wp-includes/wpmu-functions.php index 14ba2ba..c7aeab6 100644 --- a/wp-includes/wpmu-functions.php +++ b/wp-includes/wpmu-functions.php @@ -1500,16 +1500,6 @@ function get_most_recent_post_of_user( $user_id ) { /* Misc functions */ -function is_upload_too_big( $file ) { - if( filesize($file['file']) > ( 1024 * get_site_option( 'fileupload_maxk', 1500 ) ) ) - $file['error'] = sprintf(__('This file is too big. Files must be less than %1$s Kb in size.<br />'), get_site_option( 'fileupload_maxk', 1500 ) ); - if( upload_is_user_over_quota( false ) ) { - $file['error'] = __('You have used your space quota. Please delete files before uploading.<br />'); - } - return $file; -} -add_filter( 'wp_handle_upload', 'is_upload_too_big' ); - function fix_upload_details( $uploads ) { $uploads['url'] = str_replace( UPLOADS, "files", $uploads['url'] ); return $uploads; |