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/file.nepi.ir/common/Files/Controllers/DownloadFileController.php
<?php namespace Common\Files\Controllers;

use Common\Core\BaseController;
use Common\Files\FileEntry;
use Common\Files\Response\DownloadFilesResponse;
use Common\Files\Response\FileResponseFactory;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\StreamedResponse;

class DownloadFileController extends BaseController
{
    public function __construct(
        protected Request $request,
        protected FileEntry $fileEntry,
        protected FileResponseFactory $fileResponseFactory,
    ) {
    }

    public function download(string $hashes)
    {
        $hashes = explode(',', $hashes);
        $ids = array_map(function ($hash) {
            return $this->fileEntry->decodeHash($hash);
        }, $hashes);
        $ids = array_filter($ids);

        if (!$ids) {
            abort(404, 'No entry hashes provided.');
        }

        $entries = $this->fileEntry->whereIn('id', $ids)->get();

        $this->authorize('download', [FileEntry::class, $entries]);

        return app(DownloadFilesResponse::class)->create($entries);
    }
}