FileEditAction.class.php (1583B)
1 <?php 2 namespace cms\action\file; 3 use cms\action\FileAction; 4 use cms\action\Method; 5 use language\Messages; 6 use util\exception\ValidationException; 7 use util\Upload; 8 9 10 class FileEditAction extends FileAction implements Method { 11 public function view() { 12 // MIME-Types aus Datei lesen 13 $this->setTemplateVars( $this->file->getProperties() ); 14 } 15 public function post() { 16 $upload = new Upload(); 17 18 if ( $upload->isAvailable() ) 19 { 20 // File received as attachement. 21 try 22 { 23 $upload->processUpload(); 24 } 25 catch( \Exception $e ) 26 { 27 throw $e; 28 } 29 30 $this->file->filename = $upload->filename; 31 $this->file->extension = $upload->extension; 32 $this->file->size = $upload->size; 33 $this->file->save(); 34 35 $this->file->value = $upload->value; 36 $this->file->saveValue(); 37 } 38 elseif( $value = $this->request->getText('value') ) 39 { 40 // File value received 41 $this->file->value = $value; 42 43 if ( strtolower($this->request->getText('encoding')) == 'base64') 44 // file value is base64-encoded 45 $this->file->value = base64_decode($this->file->value); 46 47 $this->file->saveValue(); 48 } 49 else 50 { 51 // No file received. 52 throw new ValidationException('value'); 53 } 54 55 $this->file->setTimestamp(); 56 57 $this->addNoticeFor( $this->file, Messages::VALUE_SAVED ); 58 } 59 }