From d61bbd5668eef413752e2bd317d76d103e9af88c Mon Sep 17 00:00:00 2001 From: Matthew Baggett Date: Wed, 9 Sep 2020 07:32:50 +0200 Subject: [PATCH] implement a mechanism to return a file from a flysystem filesystem. --- src/Controllers/AbstractController.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Controllers/AbstractController.php b/src/Controllers/AbstractController.php index 295816e..143aa01 100644 --- a/src/Controllers/AbstractController.php +++ b/src/Controllers/AbstractController.php @@ -5,6 +5,7 @@ namespace Benzine\Controllers; use Benzine\Controllers\Filters\Filter; use Benzine\Exceptions\FilterDecodeException; use Benzine\ORM\Abstracts\AbstractService; +use League\Flysystem\Filesystem; use Monolog\Logger; use Slim\Psr7\Request; use Slim\Psr7\Response; @@ -111,4 +112,19 @@ abstract class AbstractController ->withStatus(404) ; } + + protected function returnFile(Filesystem $filesystem, string $filename) : Response{ + $response = new Response(); + if(!$filesystem->has($filename)){ + return $this->pageNotFound(); + } + + //\Kint::dump($filesystem->getMimetype($assetName));exit; + + $response->getBody() + ->write($filesystem->read($filename)); + ; + + return $response->withHeader("Content-type", $filesystem->getMimetype($filename)); + } }