openrat-cms

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

commit cb78fd6c2de413937ad182e5e86ae5cfa3dc9c0b
parent 4fa98a38cc5063ed9c710ad71b6ae67358a2a54a
Author: Jan Dankert <devnull@localhost>
Date:   Mon,  6 Nov 2017 22:08:58 +0100

Dateien bei der Ausgabe als JSON BASE64-kodiert ausgeben. Dies ist notwendig, um Dateien über die API übertragen zu können.

Diffstat:
action/FileAction.class.php | 13+++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/action/FileAction.class.php b/action/FileAction.class.php @@ -26,7 +26,7 @@ class FileAction extends ObjectAction { public $security = SECURITY_USER; - + var $file; var $defaultSubAction = 'show'; @@ -156,14 +156,19 @@ class FileAction extends ObjectAction // Der Browser hat so die Moeglichkeit, einen Fortschrittsbalken zu zeigen header('Content-Length: '.filesize($this->file->tmpfile()) ); - // Unterscheidung, ob PHP-Code in der Datei ausgefuehrt werden soll. - if ( ( config('publish','enable_php_in_file_content')=='auto' && $this->file->getRealExtension()=='php') || + if ( in_array( getenv('HTTP_ACCEPT'),array('application/php-array','application/php-serialized','application/json','application/xml'))) + { + $this->setTemplateVar('encoding', 'base64'); + $this->setTemplateVar('value' , base64_encode($this->file->tmpfile()) ); + } + // Unterscheidung, ob PHP-Code in der Datei ausgefuehrt werden soll. + elseif ( ( config('publish','enable_php_in_file_content')=='auto' && $this->file->getRealExtension()=='php') || config('publish','enable_php_in_file_content')===true ) // PHP-Code ausfuehren require( $this->file->tmpfile() ); else // PHP-Code nicht ausfuehren, Datei direkt auf die Standardausgabe schreiben - readfile( $this->file->tmpfile() ); + readfile( $this->file->tmpfile() ); exit; }