1: <?php
2:
3: /**
4: * Picon Framework
5: * http://code.google.com/p/picon-framework/
6: *
7: * Copyright (C) 2011-2012 Martin Cassidy <martin.cassidy@webquub.com>
8:
9: * Picon Framework is free software: you can redistribute it and/or modify
10: * it under the terms of the GNU General Public License as published by
11: * the Free Software Foundation, either version 3 of the License, or
12: * (at your option) any later version.
13:
14: * Picon Framework is distributed in the hope that it will be useful,
15: * but WITHOUT ANY WARRANTY; without even the implied warranty of
16: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17: * General Public License for more details.
18:
19: * You should have received a copy of the GNU General Public License
20: * along with Picon Framework. If not, see <http://www.gnu.org/licenses/>.
21: * */
22:
23: namespace picon;
24:
25: /**
26: * A model which represents a file upload
27: * This provides methods to gain access to information about a file upload after
28: * it has been uploaded.
29: *
30: * @author Martin Cassidy
31: */
32: class FileModel implements Model
33: {
34: private $file;
35:
36: public function getModelObject()
37: {
38: return $this->file;
39: }
40:
41: /**
42: * The key for a file in $_FILE
43: * This method is for internal use only!
44: * @param string $object
45: */
46: public function setModelObject(&$object)
47: {
48: $this->file = $object;
49: }
50:
51: public function getName()
52: {
53: $this->enforce();
54: return $this->file['name'];
55: }
56:
57: public function getTempName()
58: {
59: $this->enforce();
60: return $this->file['tmp_name'];
61: }
62:
63: public function getType()
64: {
65: $this->enforce();
66: return $this->file['type'];
67: }
68:
69: public function getSize()
70: {
71: $this->enforce();
72: return $this->file['size'];
73: }
74:
75: public function getError()
76: {
77: $this->enforce();
78: return $this->file['error'];
79: }
80:
81: private function enforce()
82: {
83: if($this->file==null)
84: {
85: throw new \IllegalStateException('No file upload has been registered with this model');
86: }
87: }
88: }
89:
90: ?>
91: