aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/plupload/plupload.php
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2019-10-20 20:59:01 +0200
committerMarc Alexander <admin@m-a-styles.de>2019-10-20 20:59:01 +0200
commit4e3b22b33241c7237ad2e007a7fa3be4f1b38d09 (patch)
tree154e874ff9fae5c9e02329f1dbb808d831c9db66 /phpBB/phpbb/plupload/plupload.php
parent801214f0eee10f42625e3357858cc35c5b42dbe0 (diff)
parent6eb00414536f583e4e1ac5fc72cb00025f55b2ce (diff)
downloadforums-4e3b22b33241c7237ad2e007a7fa3be4f1b38d09.tar
forums-4e3b22b33241c7237ad2e007a7fa3be4f1b38d09.tar.gz
forums-4e3b22b33241c7237ad2e007a7fa3be4f1b38d09.tar.bz2
forums-4e3b22b33241c7237ad2e007a7fa3be4f1b38d09.tar.xz
forums-4e3b22b33241c7237ad2e007a7fa3be4f1b38d09.zip
Merge pull request #5667 from EA117/ticket/16141
[ticket/16141] plupload chunk_size incorrect when 'unlimited' is involved.
Diffstat (limited to 'phpBB/phpbb/plupload/plupload.php')
-rw-r--r--phpBB/phpbb/plupload/plupload.php37
1 files changed, 26 insertions, 11 deletions
diff --git a/phpBB/phpbb/plupload/plupload.php b/phpBB/phpbb/plupload/plupload.php
index 9ad12b1082..5a5b8a1874 100644
--- a/phpBB/phpbb/plupload/plupload.php
+++ b/phpBB/phpbb/plupload/plupload.php
@@ -274,22 +274,37 @@ class plupload
}
/**
- * Checks various php.ini values and the maximum file size to determine
- * the maximum size chunks a file can be split up into for upload
- *
- * @return int
- */
+ * Checks various php.ini values to determine the maximum chunk
+ * size a file should be split into for upload.
+ *
+ * The intention is to calculate a value which reflects whatever
+ * the most restrictive limit is set to. And to then set the chunk
+ * size to half that value, to ensure any required transfer overhead
+ * and POST data remains well within the limit. Or, if all of the
+ * limits are set to unlimited, the chunk size will also be unlimited.
+ *
+ * @return int
+ *
+ * @access public
+ */
public function get_chunk_size()
{
- $max = min(
+ $max = 0;
+
+ $limits = [
+ $this->php_ini->getBytes('memory_limit'),
$this->php_ini->getBytes('upload_max_filesize'),
$this->php_ini->getBytes('post_max_size'),
- max(1, $this->php_ini->getBytes('memory_limit')),
- $this->config['max_filesize']
- );
+ ];
+
+ foreach ($limits as $limit_type)
+ {
+ if ($limit_type > 0)
+ {
+ $max = ($max !== 0) ? min($limit_type, $max) : $limit_type;
+ }
+ }
- // Use half of the maximum possible to leave plenty of room for other
- // POST data.
return floor($max / 2);
}