HEX
Server: Apache
System: Linux server1.ariadata.co 4.18.0-553.120.1.el8_10.x86_64 #1 SMP Mon Apr 20 18:04:27 EDT 2026 x86_64
User: nepi (1051)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system,show_source,popen,proc_open
Upload Files
File: /home/nepi/public_html/src/endpoints/Assets.php
<?php

namespace Directus\Api\Routes;

use Directus\Application\Route;
use Directus\Application\Http\Request;
use Directus\Application\Http\Response;
use Directus\Services\AssetService;
use Slim\Http\Stream;
use function Directus\get_directus_setting;

class Assets extends Route
{
    public function __invoke(Request $request, Response $response)
    {
        $service = new AssetService($this->container);
        $fileId = $request->getAttribute('id');

        $asset = $service->getAsset(
            $fileId,
            $request->getQueryParams(),
            true
        );

        if (isset($asset['file']) && $asset['mimeType']) {
            $response->setHeader('Content-type', $asset['mimeType']);
            $response->setHeader('Content-Disposition', 'filename="' . $asset['filename_download'] . '"');
            $response->setHeader('Last-Modified', $asset['last_modified']);

            $ttl = get_directus_setting('thumbnail_cache_ttl');

            if ($ttl) {
                $response->setHeader('Cache-Control', 'max-age=' . $ttl . ', public');
            }

            return $response->withBody(new Stream($asset['file']));
        } else {
            return $response->withStatus(404);
        }
    }
}