FileUploadAction.class.php (935B)
1 <?php 2 3 namespace cms\action\file; 4 5 use cms\action\FileAction; 6 use cms\action\Method; 7 use cms\model\BaseObject; 8 use cms\model\Permission; 9 use language\Messages; 10 use util\Upload; 11 12 13 class FileUploadAction extends FileAction implements Method { 14 15 public function getRequiredPermission() { 16 return Permission::ACL_WRITE; 17 } 18 19 20 public function view() { 21 } 22 23 24 public function post() { 25 26 // File was uploaded. 27 $upload = new Upload('file'); 28 29 try 30 { 31 $upload->processUpload(); 32 } 33 catch( \Exception $e ) 34 { 35 // technical error. 36 throw new \RuntimeException('Exception while processing the upload: '.$e->getMessage(), 0, $e); 37 } 38 39 $this->file->filename = $upload->filename; 40 $this->file->extension = $upload->extension; 41 $this->file->size = $upload->size; 42 $this->file->persist(); 43 44 $this->file->value = $upload->value; 45 $this->file->saveValue(); 46 47 $this->addNoticeFor( $this->file, Messages::SAVED ); 48 } 49 }