UploadedFile::getSize()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
3
/**
4
 * This file is part of the miBadger package.
5
 *
6
 * @author Michael Webbers <[email protected]>
7
 * @license http://opensource.org/licenses/Apache-2.0 Apache v2 License
8
 */
9
10
namespace miBadger\Http;
11
12
use Psr\Http\Message\UploadedFileInterface;
13
14
/**
15
 * The uploaded file class
16
 *
17
 * @see http://www.php-fig.org/psr/psr-7/
18
 * @since 1.0.0
19
 */
20
class UploadedFile implements UploadedFileInterface
21
{
22
	/** @var string The name */
23
	private $name;
24
25
	/** @var string The type. */
26
	private $type;
27
28
	/** @var string The tmp name. */
29
	private $tmpName;
30
31
	/** @var int The error. */
32
	private $error;
33
34
	/** @var int The size. */
35
	private $size;
36
37
	/**
38
	 * Construct a Stream object with the given name, type, tmp name, error and size.
39
	 *
40
	 * @param string $name
41
	 * @param string $type
42
	 * @param string $tmpName
43
	 * @param int $error
44
	 * @param int $size
45
	 */
46 28
	public function __construct($name, $type, $tmpName, $error, $size)
47
	{
48 28
		$this->name = $name;
49 28
		$this->type = $type;
50 28
		$this->tmpName = $tmpName;
51 28
		$this->error = $error;
52 28
		$this->size = $size;
53 28
	}
54
55
	/**
56
	 * {@inheritdoc}
57
	 */
58 1
	public function getStream()
59
	{
60 1
		return new Stream(fopen($this->tmpName, 'r'));
61
	}
62
63
	/**
64
	 * {@inheritdoc}
65
	 */
66 3
	public function moveTo($targetPath)
67
	{
68 3
		if ($this->getError() != UPLOAD_ERR_OK || !is_uploaded_file($this->tmpName) || !move_uploaded_file($this->tmpName, $targetPath)) {
69 2
			throw new \RuntimeException('Can\'t move the file');
70
		}
71 2
	}
72
73
	/**
74
	 * {@inheritdoc}
75
	 */
76 1
	public function getSize()
77
	{
78 1
		return $this->size;
79
	}
80
81
	/**
82
	 * {@inheritdoc}
83
	 */
84 4
	public function getError()
85
	{
86 4
		return $this->error;
87
	}
88
89
	/**
90
	 * {@inheritdoc}
91
	 */
92 1
	public function getClientFilename()
93
	{
94 1
		return $this->name;
95
	}
96
97
	/**
98
	 * {@inheritdoc}
99
	 */
100 1
	public function getClientMediaType()
101
	{
102 1
		return $this->type;
103
	}
104
}
105