1 | <?php |
||
34 | class File extends EmbeddedDocument |
||
35 | { |
||
36 | |||
37 | const TmpPrefix = 'tmp'; |
||
38 | |||
39 | /** |
||
40 | * NOTE: This is also in gridfs, here is added to avoid querying gridfs just to get filename |
||
41 | * @var string |
||
42 | */ |
||
43 | public $filename = ''; |
||
44 | |||
45 | /** |
||
46 | * Size in bytes NOTE: @see $filename |
||
47 | * @var int |
||
48 | */ |
||
49 | public $size = 0; |
||
50 | |||
51 | /** |
||
52 | * Root document class |
||
53 | * @var string Class name |
||
54 | */ |
||
55 | public $rootClass = ''; |
||
56 | |||
57 | /** |
||
58 | * Root document ID |
||
59 | * @var MongoId |
||
60 | */ |
||
61 | public $rootId = ''; |
||
62 | |||
63 | /** |
||
64 | * NOTE: Same not as for $filename field |
||
65 | * @var string |
||
66 | */ |
||
67 | public $contentType = ''; |
||
68 | |||
69 | /** |
||
70 | * Mongo DB instance |
||
71 | * @var MongoDB |
||
72 | */ |
||
73 | private $_db = null; |
||
74 | |||
75 | 6 | public function __construct($scenario = 'insert', $lang = '') |
|
82 | |||
83 | 6 | public function setOwner(AnnotatedInterface $owner = null) |
|
94 | |||
95 | public function getId() |
||
96 | { |
||
97 | if (!$this->_id instanceof MongoId) |
||
98 | { |
||
99 | $this->_id = new MongoId($this->_id); |
||
100 | } |
||
101 | return $this->_id; |
||
102 | } |
||
103 | |||
104 | /** |
||
105 | * Get file from mongo grid |
||
106 | * @return MongoGridFSFile |
||
107 | */ |
||
108 | 3 | public function get() |
|
112 | |||
113 | /** |
||
114 | * Send file to browser |
||
115 | */ |
||
116 | public function send() |
||
120 | |||
121 | /** |
||
122 | * Stream file to browser |
||
123 | */ |
||
124 | public function stream() |
||
128 | |||
129 | /** |
||
130 | * Set file data |
||
131 | * @param FileInterface|string $file |
||
132 | */ |
||
133 | 5 | public function set($file) |
|
134 | { |
||
135 | 5 | if ($file instanceof FileInterface) |
|
136 | { |
||
137 | 1 | $tempName = $file->getTempName(); |
|
138 | 1 | $fileName = $file->getFileName(); |
|
139 | } |
||
140 | else |
||
141 | { |
||
142 | 4 | $tempName = $file; |
|
143 | 4 | $fileName = $file; |
|
144 | } |
||
145 | 5 | $this->_set($tempName, $fileName); |
|
146 | 5 | } |
|
147 | |||
148 | /** |
||
149 | * Get file with optional criteria params |
||
150 | * @param mixed[] $params |
||
151 | * @return MongoGridFSFile |
||
152 | */ |
||
153 | 5 | protected function _get($params = []) |
|
169 | |||
170 | /** |
||
171 | * Send file to the browser |
||
172 | * @param MongoGridFSFile $file |
||
173 | */ |
||
174 | protected function _send(MongoGridFSFile $file = null) |
||
195 | |||
196 | protected function _stream(MongoGridFSFile $file) |
||
226 | |||
227 | /** |
||
228 | * Set file with optional criteria params |
||
229 | * @param string $tempName |
||
230 | * @param string $fileName |
||
231 | * @param mixed[] $params |
||
232 | */ |
||
233 | 5 | protected function _set($tempName, $fileName, $params = []) |
|
292 | |||
293 | /** |
||
294 | * This is fired after delete to remove chunks from gridfs |
||
295 | */ |
||
296 | 2 | protected function _onAfterDelete() |
|
304 | |||
305 | } |
||
306 |