mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-07 15:05:43 +02:00
Merge branch 'feature/bantu/remote_upload-filesize' into develop-olympus
* feature/bantu/remote_upload-filesize: [feature/remote_upload-filesize] Also check HTTP content-length before actually starting the file transfer. [feature/remote_upload-filesize] When transferring files from a remote webserver, abort the transfer as soon as the allowed filesize has been exceeded.
This commit is contained in:
commit
5fb945c220
@ -775,7 +775,18 @@ class fileupload
|
|||||||
{
|
{
|
||||||
if ($get_info)
|
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
|
else
|
||||||
{
|
{
|
||||||
@ -791,6 +802,18 @@ class fileupload
|
|||||||
{
|
{
|
||||||
$upload_ary['type'] = rtrim(str_replace('content-type: ', '', strtolower($line)));
|
$upload_ary['type'] = rtrim(str_replace('content-type: ', '', strtolower($line)));
|
||||||
}
|
}
|
||||||
|
else if ($this->max_filesize && stripos($line, 'content-length: ') !== false)
|
||||||
|
{
|
||||||
|
$length = (int) str_replace('content-length: ', '', strtolower($line));
|
||||||
|
|
||||||
|
if ($length && $length > $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;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (stripos($line, '404 not found') !== false)
|
else if (stripos($line, '404 not found') !== false)
|
||||||
{
|
{
|
||||||
$file = new fileerror($user->lang[$this->error_prefix . 'URL_NOT_FOUND']);
|
$file = new fileerror($user->lang[$this->error_prefix . 'URL_NOT_FOUND']);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user