diff options
author | Andreas Fischer <bantu@phpbb.com> | 2010-04-06 15:30:54 +0200 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2010-05-14 01:19:34 +0200 |
commit | d19565756add78e246f193b4cffd104836b87fb4 (patch) | |
tree | a22e492f6fff16ea7e0cd23e187f1d19ba0479e3 /phpBB/includes/functions_upload.php | |
parent | 925a135613a80ba9bfc3b26a2524d3c2d3ba77b3 (diff) | |
download | forums-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.php | 13 |
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 { |