Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
13 / 13 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
1 / 1 |
base | |
100.00% |
13 / 13 |
|
100.00% |
2 / 2 |
7 | |
100.00% |
1 / 1 |
check_upload_size | |
100.00% |
11 / 11 |
|
100.00% |
1 / 1 |
6 | |||
set_upload | |
100.00% |
2 / 2 |
|
100.00% |
1 / 1 |
1 |
1 | <?php |
2 | /** |
3 | * |
4 | * This file is part of the phpBB Forum Software package. |
5 | * |
6 | * @copyright (c) phpBB Limited <https://www.phpbb.com> |
7 | * @license GNU General Public License, version 2 (GPL-2.0) |
8 | * |
9 | * For full copyright and license information, please see |
10 | * the docs/CREDITS.txt file. |
11 | * |
12 | */ |
13 | |
14 | namespace phpbb\files\types; |
15 | |
16 | abstract class base implements type_interface |
17 | { |
18 | /** @var \phpbb\language\language */ |
19 | protected $language; |
20 | |
21 | /** @var \bantu\IniGetWrapper\IniGetWrapper */ |
22 | protected $php_ini; |
23 | |
24 | /** @var \phpbb\files\upload */ |
25 | protected $upload; |
26 | |
27 | /** |
28 | * Check if upload exceeds maximum file size |
29 | * |
30 | * @template filespec_type of \phpbb\files\filespec|\phpbb\files\filespec_storage |
31 | * @param filespec_type $file Filespec object |
32 | * |
33 | * @return filespec_type Returns same filespec instance |
34 | */ |
35 | public function check_upload_size($file) |
36 | { |
37 | // PHP Upload filesize exceeded |
38 | if ($file->get('filename') == 'none') |
39 | { |
40 | $max_filesize = $this->php_ini->getString('upload_max_filesize'); |
41 | $unit = 'MB'; |
42 | |
43 | if (!empty($max_filesize)) |
44 | { |
45 | $unit = strtolower(substr($max_filesize, -1, 1)); |
46 | $max_filesize = (int) $max_filesize; |
47 | |
48 | $unit = ($unit == 'k') ? 'KB' : (($unit == 'g') ? 'GB' : 'MB'); |
49 | } |
50 | |
51 | if (empty($max_filesize)) |
52 | { |
53 | $file->error[] = $this->language->lang($this->upload->error_prefix . 'PHP_SIZE_NA'); |
54 | } |
55 | else |
56 | { |
57 | $file->error[] = $this->language->lang($this->upload->error_prefix . 'PHP_SIZE_OVERRUN', $max_filesize, $this->language->lang($unit)); |
58 | } |
59 | } |
60 | |
61 | return $file; |
62 | } |
63 | |
64 | /** |
65 | * {@inheritdoc} |
66 | */ |
67 | public function set_upload(\phpbb\files\upload $upload) |
68 | { |
69 | $this->upload = $upload; |
70 | |
71 | return $this; |
72 | } |
73 | } |