|
4 | 4 |
|
5 | 5 | class MailMessage extends DataObject |
6 | 6 | { |
7 | | - const ATTACHMENTS_SIZE_LIMIT = 10; |
| 7 | + const ATTACHMENTS_SIZE_LIMIT = 8000000; |
8 | 8 |
|
9 | 9 | /** |
10 | 10 | * @var EmailAddress |
@@ -186,52 +186,83 @@ public function getAltBody() |
186 | 186 |
|
187 | 187 | public function setFiles() |
188 | 188 | { |
| 189 | + $uploadFolder = $this->getFullPathOfUploadFolder(); |
| 190 | + |
| 191 | + if (!file_exists($uploadFolder)) { |
| 192 | + mkdir($uploadFolder, 0777, true); |
| 193 | + } |
| 194 | + |
189 | 195 | foreach ($this->attachments as $file) |
190 | 196 | { |
191 | | - $path = $this->getFullPathOfUploadFolder() . DIRECTORY_SEPARATOR . $file->name; |
192 | 197 | /** @var File $file */ |
| 198 | + $path = $this->getFullPathOfUploadFolder() . DIRECTORY_SEPARATOR . $file->uniqName; |
| 199 | + @chmod($path, 0666 & ~umask()); |
| 200 | + |
193 | 201 | if (move_uploaded_file($file->tmp_name, $path)) { |
194 | 202 |
|
195 | 203 | if ($file->size > self::ATTACHMENTS_SIZE_LIMIT) { |
196 | | - $domainPath = $_SERVER['HTTP_ORIGIN'] . $this->getWebUploadFolder() .DIRECTORY_SEPARATOR . $file->name; |
| 204 | + $domainPath = $_SERVER['HTTP_ORIGIN'] . $this->getWebUploadFolder() .DIRECTORY_SEPARATOR . $file->uniqName; |
197 | 205 | $this->addFileLink([$domainPath => $file->name]); |
198 | 206 | } else { |
199 | 207 | $this->addFile([$path => $file->name]); |
200 | 208 | } |
201 | 209 | } |
202 | 210 | } |
| 211 | + |
| 212 | + return true; |
203 | 213 | } |
204 | 214 |
|
| 215 | + /** |
| 216 | + * @return array |
| 217 | + */ |
205 | 218 | public function getFiles() |
206 | 219 | { |
207 | 220 | return $this->files; |
208 | 221 | } |
209 | 222 |
|
| 223 | + /** |
| 224 | + * @param $data |
| 225 | + */ |
210 | 226 | protected function addFile($data) |
211 | 227 | { |
212 | 228 | $this->files[] = new EmailAttachment($data); |
213 | 229 | } |
214 | 230 |
|
| 231 | + /** |
| 232 | + * @param $data |
| 233 | + */ |
215 | 234 | protected function addFileLink($data) |
216 | 235 | { |
217 | 236 | $this->fileLinks[] = new EmailAttachment($data); |
218 | 237 | } |
219 | 238 |
|
| 239 | + /** |
| 240 | + * @return array |
| 241 | + */ |
220 | 242 | public function getFileLinks() |
221 | 243 | { |
222 | 244 | return $this->fileLinks; |
223 | 245 | } |
224 | 246 |
|
| 247 | + /** |
| 248 | + * @return string |
| 249 | + */ |
225 | 250 | protected function getFullPathOfUploadFolder() |
226 | 251 | { |
227 | 252 | return __DIR__ . $this->getUploadFolder(); |
228 | 253 | } |
229 | 254 |
|
| 255 | + /** |
| 256 | + * @return string |
| 257 | + */ |
230 | 258 | protected function getUploadFolder() |
231 | 259 | { |
232 | 260 | return '/../../examples' . $this->getWebUploadFolder(); |
233 | 261 | } |
234 | 262 |
|
| 263 | + /** |
| 264 | + * @return string |
| 265 | + */ |
235 | 266 | protected function getWebUploadFolder() |
236 | 267 | { |
237 | 268 | return '/attachments'; |
|
0 commit comments