mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-24 12:03:21 +01:00
[ticket/10908] Download files only up to max_upload_filesize if limit is 0
PHPBB3-10908
This commit is contained in:
parent
efa96e1817
commit
13f30e8d9d
@ -751,6 +751,31 @@ class fileupload
|
||||
$filename = $url['path'];
|
||||
$filesize = 0;
|
||||
|
||||
$remote_max_filesize = $this->max_filesize;
|
||||
if (!$remote_max_filesize)
|
||||
{
|
||||
$max_filesize = @ini_get('upload_max_filesize');
|
||||
|
||||
if (!empty($max_filesize))
|
||||
{
|
||||
$unit = strtolower(substr($max_filesize, -1, 1));
|
||||
$remote_max_filesize = (int) $max_filesize;
|
||||
|
||||
switch ($unit)
|
||||
{
|
||||
case 'g':
|
||||
$remote_max_filesize *= 1024;
|
||||
// no break
|
||||
case 'm':
|
||||
$remote_max_filesize *= 1024;
|
||||
// no break
|
||||
case 'k':
|
||||
$remote_max_filesize *= 1024;
|
||||
// no break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$errno = 0;
|
||||
$errstr = '';
|
||||
|
||||
@ -779,9 +804,9 @@ class fileupload
|
||||
$block = @fread($fsock, 1024);
|
||||
$filesize += strlen($block);
|
||||
|
||||
if ($this->max_filesize && $filesize > $this->max_filesize)
|
||||
if ($remote_max_filesize && $filesize > $remote_max_filesize)
|
||||
{
|
||||
$max_filesize = get_formatted_filesize($this->max_filesize, false);
|
||||
$max_filesize = get_formatted_filesize($remote_max_filesize, false);
|
||||
|
||||
$file = new fileerror(sprintf($user->lang[$this->error_prefix . 'WRONG_FILESIZE'], $max_filesize['value'], $max_filesize['unit']));
|
||||
return $file;
|
||||
@ -807,9 +832,9 @@ class fileupload
|
||||
{
|
||||
$length = (int) str_replace('content-length: ', '', strtolower($line));
|
||||
|
||||
if ($length && $length > $this->max_filesize)
|
||||
if ($remote_max_filesize && $length && $length > $remote_max_filesize)
|
||||
{
|
||||
$max_filesize = get_formatted_filesize($this->max_filesize, false);
|
||||
$max_filesize = get_formatted_filesize($remote_max_filesize, false);
|
||||
|
||||
$file = new fileerror(sprintf($user->lang[$this->error_prefix . 'WRONG_FILESIZE'], $max_filesize['value'], $max_filesize['unit']));
|
||||
return $file;
|
||||
|
Loading…
x
Reference in New Issue
Block a user