openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 }