From 7df0e352101c36d06e6831123be678a8a6b5077d Mon Sep 17 00:00:00 2001 From: alecpl Date: Sat, 5 Sep 2009 07:47:07 +0000 Subject: - Check 'post_max_size' for upload max filesize (#1486089) --- program/steps/mail/attachments.inc | 8 +++++++- program/steps/mail/compose.inc | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'program') diff --git a/program/steps/mail/attachments.inc b/program/steps/mail/attachments.inc index 601570345..b57037d05 100644 --- a/program/steps/mail/attachments.inc +++ b/program/steps/mail/attachments.inc @@ -128,7 +128,13 @@ if (is_array($_FILES['_attachments']['tmp_name'])) { } } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $OUTPUT->command('display_message', rcube_label('fileuploaderror'), 'error'); + // if filesize exceeds post_max_size then $_FILES array is empty, + // show filesizeerror instead of fileuploaderror + if ($maxsize = ini_get('post_max_size')) + $msg = rcube_label(array('name' => 'filesizeerror', 'vars' => array('size' => show_bytes(parse_bytes($maxsize))))); + else + $msg = rcube_label('fileuploaderror'); + $OUTPUT->command('display_message', $msg, 'error'); } // send html page with JS calls as response diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 79a95dbcf..5d1fe2122 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -823,13 +823,20 @@ function rcmail_compose_attachment_form($attrib) // add ID if not given if (!$attrib['id']) $attrib['id'] = 'rcmUploadbox'; + + // find max filesize value + $max_filesize = parse_bytes(ini_get('upload_max_filesize')); + $max_postsize = parse_bytes(ini_get('post_max_size')); + if ($max_postsize && $max_postsize < $max_filesize) + $max_filesize = $max_postsize; + $max_filesize = show_bytes($max_filesize); $button = new html_inputfield(array('type' => 'button', 'class' => 'button')); $out = html::div($attrib, $OUTPUT->form_tag(array('name' => 'form', 'method' => 'post', 'enctype' => 'multipart/form-data'), html::div(null, rcmail_compose_attachment_field(array())) . - html::div('hint', rcube_label(array('name' => 'maxuploadsize', 'vars' => array('size' => show_bytes(parse_bytes(ini_get('upload_max_filesize'))))))) . + html::div('hint', rcube_label(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) . html::div('buttons', $button->show(rcube_label('close'), array('onclick' => "document.getElementById('$attrib[id]').style.visibility='hidden'")) . ' ' . $button->show(rcube_label('upload'), array('onclick' => JS_OBJECT_NAME . ".command('send-attachment', this.form)")) -- cgit v1.2.3