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:
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;
}