From a409db9104bfe8ee50fbd47d4cd8754b3ec6e691 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Sun, 17 May 2009 19:23:12 +0000 Subject: [PATCH] (bug 18411) The upload form now also checks post_max_size (patch contributed by Enukarmers, updated by Stefano Codari) --- CREDITS | 1 + RELEASE-NOTES | 1 + includes/specials/SpecialUpload.php | 37 ++++++++++++++++------------- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/CREDITS b/CREDITS index c11574a5f7..768df07b98 100644 --- a/CREDITS +++ b/CREDITS @@ -67,6 +67,7 @@ following names for their contribution to the product. * Daniel Arnold * Danny B. * Derk-Jan Hartman +* Emufarmers * FunPika * Happy-melon * Jeremy Baron diff --git a/RELEASE-NOTES b/RELEASE-NOTES index de6187b536..2f80f48245 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -53,6 +53,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN Mediawiki Namespace, before checking the message files * (bug 18466) Add note or warning when overruling a move (semi-)protection * (bug 18342) insertTags works in edit summary box +* (bug 18411) The upload form also checks post_max_size === Bug fixes in 1.16 === diff --git a/includes/specials/SpecialUpload.php b/includes/specials/SpecialUpload.php index 317402dfd5..f234ccc1f6 100644 --- a/includes/specials/SpecialUpload.php +++ b/includes/specials/SpecialUpload.php @@ -1047,26 +1047,29 @@ wgUploadAutoFill = {$autofill}; } # Get the maximum file size from php.ini as $wgMaxUploadSize works for uploads from URL via CURL only - # See http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize for possible values of upload_max_filesize - $val = trim( ini_get( 'upload_max_filesize' ) ); - $last = strtoupper( ( substr( $val, -1 ) ) ); - switch( $last ) { - case 'G': - $val2 = substr( $val, 0, -1 ) * 1024 * 1024 * 1024; - break; - case 'M': - $val2 = substr( $val, 0, -1 ) * 1024 * 1024; - break; - case 'K': - $val2 = substr( $val, 0, -1 ) * 1024; - break; - default: - $val2 = $val; + # See http://www.php.net/manual/en/faq.using.php#faq.using.shorthandbytes for possible values of upload_max_filesize and post_max_filesize + $max_sizes = array(); + $max_sizes[] = trim( ini_get( 'upload_max_filesize' ) ); + $max_sizes[] = trim( ini_get( 'post_max_size' ) ); + foreach( $max_sizes as &$size) { + $last = strtoupper( substr( $size, -1 ) ); + switch( $last ) { + case 'G': + $size = substr( $size, 0, -1 ) * 1024 * 1024 * 1024; + break; + case 'M': + $size = substr( $size, 0, -1 ) * 1024 * 1024; + break; + case 'K': + $size = substr( $size, 0, -1 ) * 1024; + break; + } } - $val2 = $wgAllowCopyUploads ? min( $wgMaxUploadSize, $val2 ) : $val2; + $val = min( $max_sizes[0], $max_sizes[1] ); + $val = $wgAllowCopyUploads ? min( $wgMaxUploadSize, $val ) : $val; $maxUploadSize = '
' . wfMsgExt( 'upload-maxfilesize', array( 'parseinline', 'escapenoentities' ), - $wgLang->formatSize( $val2 ) ) . + $wgLang->formatSize( $val ) ) . "
\n"; $sourcefilename = wfMsgExt( 'sourcefilename', array( 'parseinline', 'escapenoentities' ) ); -- 2.20.1