summaryrefslogtreecommitdiff
path: root/program/include/rcmail.php
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2012-06-08 11:14:53 +0200
committerAleksander Machniak <alec@alec.pl>2012-06-08 11:14:53 +0200
commit8749e94b4bed36500e4f45c65cc16cfd5633ef34 (patch)
tree07665dc44631255e06ea28b198b5bb224a25c39c /program/include/rcmail.php
parent54be5ccb50be664ca4cc30fab6fb84e7be8e223e (diff)
Fix attachment sizes in message print page and attachment preview page (#1488515)
- Use size parameter from Content-Disposition header if specified, - Calculate size of base64 encoded message parts
Diffstat (limited to 'program/include/rcmail.php')
-rw-r--r--program/include/rcmail.php25
1 files changed, 25 insertions, 0 deletions
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index a10a2aa72..8ec8cfe47 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -1997,6 +1997,31 @@ class rcmail extends rcube
}
+ /**
+ * Returns real size (calculated) of the message part
+ *
+ * @param rcube_message_part Message part
+ *
+ * @return string Part size (and unit)
+ */
+ public function message_part_size($part)
+ {
+ if (isset($part->d_parameters['size'])) {
+ $size = $this->show_bytes((int)$part->d_parameters['size']);
+ }
+ else {
+ $size = $part->size;
+ if ($part->encoding == 'base64') {
+ $size = $size / 1.33;
+ }
+
+ $size = '~' . $this->show_bytes($size);
+ }
+
+ return $size;
+ }
+
+
/************************************************************************
********* Deprecated methods (to be removed) *********
***********************************************************************/