Files
einundzwanzig-portal/app/Http/Controllers/ImageController.php
HolgerHatGarKeineNode d1093c6e9c 'img/einundzwanzig.png'
2023-05-08 17:33:28 +02:00

39 lines
1.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Contracts\Filesystem\Filesystem;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use League\Glide\Responses\LaravelResponseFactory;
use League\Glide\ServerFactory;
class ImageController extends Controller
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\Request $request
*
* @return \Illuminate\Http\Response
*/
public function __invoke(Request $request, Filesystem $filesystem, $path)
{
$filesystemPublic = Storage::disk('publicDisk');
$server = ServerFactory::create([
'response' => new LaravelResponseFactory(app('request')),
'source' => str($request->path())->contains('img-public') ? $filesystemPublic->getDriver() : $filesystem->getDriver(),
'cache' => $filesystem->getDriver(),
'cache_path_prefix' => '.cache',
'base_url' => $request->route()
->getName() === 'imgPublic' ? '' : 'img',
]);
try {
return $server->getImageResponse($path, request()->all());
} catch (\Exception $exception) {
abort(404);
}
}
}