aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_upload.php
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2010-04-06 15:30:54 +0200
committerNils Adermann <naderman@naderman.de>2010-05-14 01:19:34 +0200
commitd19565756add78e246f193b4cffd104836b87fb4 (patch)
treea22e492f6fff16ea7e0cd23e187f1d19ba0479e3 /phpBB/includes/functions_upload.php
parent925a135613a80ba9bfc3b26a2524d3c2d3ba77b3 (diff)
downloadforums-d19565756add78e246f193b4cffd104836b87fb4.tar
forums-d19565756add78e246f193b4cffd104836b87fb4.tar.gz
forums-d19565756add78e246f193b4cffd104836b87fb4.tar.bz2
forums-d19565756add78e246f193b4cffd104836b87fb4.tar.xz
forums-d19565756add78e246f193b4cffd104836b87fb4.zip
[feature/remote_upload-filesize] When transferring files from a remote webserver, abort the transfer as soon as the allowed filesize has been exceeded.
PHPBB3-9517
Diffstat (limited to 'phpBB/includes/functions_upload.php')
-rw-r--r--phpBB/includes/functions_upload.php13
1 files changed, 12 insertions, 1 deletions
diff --git a/phpBB/includes/functions_upload.php b/phpBB/includes/functions_upload.php
index 054af29045..40872f0425 100644
--- a/phpBB/includes/functions_upload.php
+++ b/phpBB/includes/functions_upload.php
@@ -775,7 +775,18 @@ class fileupload
{
if ($get_info)
{
- $data .= @fread($fsock, 1024);
+ $block = @fread($fsock, 1024);
+ $filesize += strlen($block);
+
+ if ($this->max_filesize && $filesize > $this->max_filesize)
+ {
+ $max_filesize = get_formatted_filesize($this->max_filesize, false);
+
+ $file = new fileerror(sprintf($user->lang[$this->error_prefix . 'WRONG_FILESIZE'], $max_filesize['value'], $max_filesize['unit']));
+ return $file;
+ }
+
+ $data .= $block;
}
else
{